url/objToUrlParam.jsjavascript
/**
* 将对象序列化为 URL 查询字符串。
* @function objToUrlParam
* @memberof module:url
* @param {Record<string, string | number | boolean | null | undefined>} params 查询参数
* @returns {string} 不包含开头问号的查询字符串
* @throws {TypeError} params 不是对象时抛出
*/
function objToUrlParam(params) {
if (params === null || typeof params !== 'object' || Array.isArray(params)) {
throw new TypeError('params must be an object')
}
const search = new URLSearchParams()
Object.entries(params).forEach(([key, value]) => {
if (value === undefined || value === null) return
if (Array.isArray(value)) value.forEach(item => search.append(key, String(item)))
else search.append(key, String(value))
})
return search.toString()
}
export default objToUrlParam