Javascript 嵌套用于…在循环中列出多维对象的属性(对象)
我不知道如何在循环中相互嵌套以列出多维对象中的所有属性Javascript 嵌套用于…在循环中列出多维对象的属性(对象),javascript,Javascript,我不知道如何在循环中相互嵌套以列出多维对象中的所有属性 var list = {}; list.one = { a: true, b: false, c: true }; list.two = { a: true, b: false, c: true }; var listing = function(obj) { for (prop in obj) { document.write(prop+"<br>");
var list = {};
list.one = {
a: true,
b: false,
c: true
};
list.two = {
a: true,
b: false,
c: true
};
var listing = function(obj) {
for (prop in obj) {
document.write(prop+"<br>");
for (props in obj) { //not sure what to write here
document.write("---"+props+"<br>");
}
}
listing(list);
是否每个连续嵌套的for…in循环都需要更复杂,以测试对象是否确实是多维的?我很迷茫。您需要枚举内部对象obj[prop]: 是否每个连续嵌套的for…in循环都需要更复杂,以测试对象是否确实是多维的
不,如果事先知道尺寸的数量,就不需要进行测试,只需嵌套循环即可。对于任意数量的级别,您需要使用递归函数,该函数需要测试参数是否为可枚举对象以及是否为叶值。只需在内部循环中迭代内部对象。见下文:
var list = {};
list.one = {
a: true,
b: false,
c: true
};
list.two = {
a: true,
b: false,
c: true
};
var listing = function(outerObj) {
for (var outerProp in outerObj) {
var innerObj = outerObj[outerProp];
document.write(prop+"<br>");
for (var innerProp in innerObj) {
document.write("---"+props+"<br>");
}
}
listing(list);
function listing(obj) {
for (var prop in obj) {
document.write(prop+"<br>");
for (var nestedProp in obj[prop]) {
document.write("---"+nestedProp+": "+obj[prop][nestedProp]+"<br />");
}
}
}
var list = {};
list.one = {
a: true,
b: false,
c: true
};
list.two = {
a: true,
b: false,
c: true
};
var listing = function(outerObj) {
for (var outerProp in outerObj) {
var innerObj = outerObj[outerProp];
document.write(prop+"<br>");
for (var innerProp in innerObj) {
document.write("---"+props+"<br>");
}
}
listing(list);