gpt4 book ai didi

javascript - 循环遍历嵌套对象

转载 作者:行者123 更新时间:2023-11-29 16:37:38 26 4
gpt4 key购买 nike

目前我有一个对象,我正在循环它以获得如下输出:

var obj = {
"first": {
"Bob": {
"1": "foo",
"2": "bar"
},
"Jim": {
"1": "baz"
}
},
"second": {
"Bob": {
"1": "qux"
},
"Jim": {
"1": "quux"
},
},
}

for (let position in obj) {
console.log(`In ${position} position`);
let pos = obj[position];
for (let name in pos) {
person = pos[name];
for (let item in person) {
let thing = person[item];
console.log(`${position} ${name} ${item} ${thing}`)
}
}
}

但是,我觉得这可能是一种困惑的方法,因为我嵌套了多个 for 循环,有没有更干净的方法来执行此操作?也许利用 ES6/ES7+/等等。 ?

最佳答案

您可以通过检查实际项目来使用迭代和递归方法,如果它是一个对象,则通过保留该对象的路径来迭代该对象。

稍后使用路径和值。

function iter(object, path = []) {
Object.keys(object).forEach(k => {
var temp = path.concat(k);
if (object[k] && typeof object[k] === 'object') {
iter(object[k], temp);
return;
}
console.log(path.join('>'), object[k]);
});
}


var data = { first: { Bob: { "1": "foo", "2": "bar" }, Jim: { "1": "baz" } }, second: { Bob: { "1": "qux" }, Jim: { "1": "quux" } } };

iter(data);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 循环遍历嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49706234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com