function flatten(obj) {
// 你的代码
}
// 最终效果是执行
flatten({
a: {
b: 1,
c: 2,
d: {e: 5}
},
b: [1, 3, {a: 2, b: 3}],
c: 3
})
// 得到
{
'a.b': 1,
'a.c': 2,
'a.d.e': 5,
'b[0]': 1,
'b[1]': 3,
'b[2].a': 2,
'b[2].b': 3,
'c': 3
}
var comType=['object','array'];
let o = {
a: {
b: 1,
c: 2,
d: {e: 5}
},
b: [1, 3, {a: 2, b: 3}],
c: 3
}
var flatten = function(o,prekey,resobj){
prekey=prekey?prekey+'.':'';
var keys=Object.keys(o);
keys.forEach(function(item){
var v=o[item];
var type=typeof v;
if(v && comType.indexOf(type) != -1){
flatten(v,prekey+item,resobj);
}else{
resobj[prekey+item]=v;
}
})
}
var result={};
flatten(o,'',result);
console.log(result);
对你有用的话,请点下采纳,谢谢