对象转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号