格式化get请求参数

发布时间 2023-03-22 21:17:25作者: <好嗨哦!>
function serializeData(data) {
let arr = [];

function keyName(key, name) {
return name ? `${name}[key]` : key;
}

const serialize = (obj, name) => {
for (let key in obj) {
if (obj[key] === undefined) continue;
switch (Object.prototype.toString.call(obj[key])) {
case "[object Object]":
serialize(obj[key], key);
break;
case "[object Array]":
let array = obj[key];
for (let i = 0; i < array.length; i++) {
arr.push(keyName(key, name) + "=" + array[i]);
}
break;
default:
arr.push(keyName(key, name) + "=" + obj[key]);
}
}
};

serialize(data);
return arr.join("&")
}

console.log(serializeData({
a: 1,
b: {
b1: 1
}
}));