如何在 JS 中循环遍历多级对象?
How do I loop through a multi-level object in JS?
我将如何遍历下面对象中的每个 value:
属性?我在下面的 console.log
中的尝试显然行不通,但这正是我想要完成的。 console.log(key)
会输出 "A1" "A2"
,但我不知道如何遍历和检索更深层次属性的名称或值。
var object = {
A1: {
B1: {
C1: "A"
},
B2: {
C1: "B"
},
B3: {
C1: "C"
},
},
A2: {
B4: {
C1: "D"
},
B5: {
C1: "E"
},
B6: {
C1: "F"
}
}
};
for (var key in object) {
console.log(object[key][key].value);
}
使用嵌套循环:
var object = {
A1: {
B1: {
C1: "A"
},
B2: {
C1: "B"
},
B3: {
C1: "C"
},
},
A2: {
B4: {
C1: "D"
},
B5: {
C1: "E"
},
B6: {
C1: "F"
}
}
};
for (var key1 in object) {
var e1 = object[key1];
for (var key2 in e1) {
var e2 = e1[key2];
for (var key3 in e2) {
console.log(e2[key3]);
}
}
}
您可能正在寻找嵌套的 for 循环。为了遍历这个特定的对象(我们知道它恰好有三层嵌套),您可以尝试这样的事情:
for(var key1 in object) {
for(var key2 in object[key1]) {
for(var key3 in object[key1][key2]) {
console.log(object[key1][key2][key3]);
}
}
}
输出:
"A"
"B"
"C"
"D"
"E"
"F"
var object = {
A1: {
B1: {
C1: "A"
},
B2: {
C1: "B"
},
B3: {
C1: "C"
},
},
A2: {
B4: {
C1: "D"
},
B5: {
C1: "E"
},
B6: {
C1: "F"
}
}
};
function printObj(obj) {
for (var key in obj) {
var value = obj[key];
if (typeof value === 'object') {
printObj(value);
} else {
console.log(value);
}
}
}
printObj(object);
只用递归
我将如何遍历下面对象中的每个 value:
属性?我在下面的 console.log
中的尝试显然行不通,但这正是我想要完成的。 console.log(key)
会输出 "A1" "A2"
,但我不知道如何遍历和检索更深层次属性的名称或值。
var object = {
A1: {
B1: {
C1: "A"
},
B2: {
C1: "B"
},
B3: {
C1: "C"
},
},
A2: {
B4: {
C1: "D"
},
B5: {
C1: "E"
},
B6: {
C1: "F"
}
}
};
for (var key in object) {
console.log(object[key][key].value);
}
使用嵌套循环:
var object = {
A1: {
B1: {
C1: "A"
},
B2: {
C1: "B"
},
B3: {
C1: "C"
},
},
A2: {
B4: {
C1: "D"
},
B5: {
C1: "E"
},
B6: {
C1: "F"
}
}
};
for (var key1 in object) {
var e1 = object[key1];
for (var key2 in e1) {
var e2 = e1[key2];
for (var key3 in e2) {
console.log(e2[key3]);
}
}
}
您可能正在寻找嵌套的 for 循环。为了遍历这个特定的对象(我们知道它恰好有三层嵌套),您可以尝试这样的事情:
for(var key1 in object) {
for(var key2 in object[key1]) {
for(var key3 in object[key1][key2]) {
console.log(object[key1][key2][key3]);
}
}
}
输出:
"A"
"B"
"C"
"D"
"E"
"F"
var object = {
A1: {
B1: {
C1: "A"
},
B2: {
C1: "B"
},
B3: {
C1: "C"
},
},
A2: {
B4: {
C1: "D"
},
B5: {
C1: "E"
},
B6: {
C1: "F"
}
}
};
function printObj(obj) {
for (var key in obj) {
var value = obj[key];
if (typeof value === 'object') {
printObj(value);
} else {
console.log(value);
}
}
}
printObj(object);
只用递归