一个未知格式的对象,现在只能勉强使用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))
<head>
</head>
<body>
<script>
let obj = {
}
function encodeUrl(obj){
(function (obj){
{
})(obj)
return url.substring(0,url.length-1);
}
let res =encodeUrl(obj);
console.log(res);
</script>
</body>