87,993
社区成员
发帖
与我相关
我的任务
分享var obj = {
a: 'a',
b: {
_1: 'b_1',
_2: 'b_2',
_3: {
_1: 'b_3_1',
_2: 'b_3_2',
_3: 'b_3_3'
}
},
c: {
_1: 'c_1',
_2: 'c_2'
}
}
// 最终写成
// {
// a: 'a',
// b_1: 'b_1'
// b_2: 'b_2',
// b_3_1: 'b_3_1',
// b_3_2: 'b_3_2',
// b_3_3: 'b_3_3',
// c_1: 'c_1',
// c_2: 'c_2',
// }
怎么动态把obj写成下面的格式呢?以下是我做的一个循环,但是不对
var arrK = []
var arrV = []
for (var k in obj) {
if (obj[k].constructor === Object) {
for (var kk in obj[k]) {
if (obj[k][kk].constructor === Object) {
for (var kkk in obj[k][kk]) {
arrK.push(k + '_' + kk + '_' + kkk)
arrV.push(obj[k][kk][kkk])
}
}
arrK.push(k + '_' + kk)
arrV.push(obj[k][kk])
}
}
arrK.push(k)
arrV.push(obj[k])
}
console.log(arrK)
console.log(arrV)
var obj = {
a: 'a',
b: {
_1: 'b_1',
_2: 'b_2',
_3: {
_1: 'b_3_1',
_2: 'b_3_2',
_3: 'b_3_3'
}
},
c: {
_1: 'c_1',
_2: 'c_2'
}
}
var o={};
function trans(obj,key){
for(var i in obj){
if(obj.hasOwnProperty(i)){
if(typeof obj[i]=='object'){
trans(obj[i],(key||'')+i);
}else{
o[(key?key:'')+i]=obj[i];
}
}
}
}
trans(obj)
console.log(o);