let message={name:{name1:11,name2:22},age:33}
最终的结果是obj[name/name1]=11 obj[name1/name2]=22 obj[age]=33
有没有知道的告诉一下
function walk(data) {
let result = {}
function walkObj(obj = {}, preKey = '') {
console.log(preKey)
Object.keys(obj).map(k => {
if (toString.call(obj[k]) === '[object Object]') {
return walkObj(obj[k], preKey ? [preKey, k].join('/') : k)
}
Object.assign(result, {
[preKey ? [preKey, k].join('/') : k]: obj[k]
})
})
}
walkObj(data)
return result
}
let message={name:{name1:11,name2:22},age:33}
function loopObj(obj,reStr){// 递归调用
let returnObj = {};
for(let key in obj){
if(obj[key] instanceof Object){
loopObj(obj[key]);
}else{
console.log(reStr+'/'+key+']='+obj[key]);
}
if(JSON.stringify(returnObj) !== '{}'){
return returnObj
}
}
}
for(let key in message){
if(message[key] instanceof Object){
let reStr = 'obj['+key;
loopObj(message[key],reStr);
}else{
console.log('obj['+key+']='+message[key])
}
}
可以试下上述代码