对象转query串
对象转query串
本质是:
new URLSearchParams(Object.entries(newObj)).toString()
整合后去除params的空值后,如下:
/**
 * @description: 对象转query串
 * @param {*} obj
 * @param {*} noFilterEmpty 默认false 去除空值再拼接字符串
 * @return {*}
 */
export const getQueryString = (obj, noFilterEmpty) => {
    if (!obj) return '';
    let newObj = { ...obj };
    if (!noFilterEmpty) {
        newObj = filterParams(newObj)
    }
    return new URLSearchParams(Object.entries(newObj)).toString()
}
/**
 * @description: 去除对象中的空值
 * @param {*} obj
 * @return {*}
 */
export const filterParams = (obj) => {
    let newObj = {};
    for (const key in obj) {
        //如果对象属性的值不为空,就保存该属性(如果属性的值为0 false,保存该属性。如果属性的值全部是空格,属于为空。)
        if ((obj[key] === 0 || obj[key] === false || obj[key]) && obj[key].toString().replace(/(^\s*)|(\s*$)/g, '') !== '') {
            newObj[key] = obj[key];
        }
    }
    return newObj;
}
url获取query并转成对象
const url = 'http://xxx.xx.x.xx.com/getUser?name=luna&age=18&sex=femal'
// URL对象的searchParams方法可以得到一个对应的URLSearchParams对象
const queryString = new URL(url).searchParams 
let queryObject = {}
for (let [key, value] of queryString.entries()) {
    queryObject[key] = value
}
console.log(queryObject) // { name: 'luna', age: '18', sex: 'femal' }

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号