一个未知格式的对象,现在只能勉强使用jquery的each来递归实现。
如果使用原生方法该如何实现??求教。
var obj = {
"test": 123123,
"fruit": '535',
"book": {
'aaa': 456,
'bbb': 789,
'ccc': {
'asd': 333,
'af': true
}
}
}
export const parseParam = function(param, key, prefix) {
//prefix 是否带"&"连接符前缀
let paramStr = prefix ? "&" : "";
if (param instanceof String || param instanceof Number || param instanceof Boolean) {
paramStr += `&${key}=${encodeURIComponent(param)}`
} else {
// 这里使用$.each勉强实现
$.each(param, function(i) {
let k = key === null ? i : key + (prefix ? i : `.${i}`);
paramStr += `&${parseParam(this, k)}`;
});
}
return paramStr.substr(1);
};
//这里的key和prefix参数没有处理好,不知怎样写可以更规范一些
console.log(parseParam(obj, '', true))
相关分类