gpt4 book ai didi

javascript - 有没有一种遍历 Javascript 对象的所有子属性的好方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:35:28 24 4
gpt4 key购买 nike

鉴于我有一个 javascript 对象,是否有一种方法可以遍历所有原始子属性?

例如,如果我有一个对象

{
foo: 17,
bar: {
a: 2,
b: 7
}
}

我想遍历 foo、bar.a 和 bar.b。

请记住,我更喜欢迭代 Object.keys() 而不是使用 for/in 循环,尽管我确信我可以将任何 for/in 循环响应转换为 Object.keys() 迭代。

最佳答案

你可以像这样使用递归函数:

var x = {
foo: 17,
bar: {
a: 2,
b: 7
}
}

function parseObject(something) {
var keys = Object.keys(something);
for (var i = 0; i < keys.length; i++) {
if (typeof something[keys[i]] === 'object') parseObject(something[keys[i]])
else console.log(keys[i] + " : " + something[keys[i]]);
}
}
parseObject(x);

生成输出:

foo : 17 
a : 2
b : 7

关于此功能的说明。它递归于任何对象。例如,如果您在对象中有一个数组,您会为数组中的每个项目获得单独的行。

所以对于下面的对象:

var x = {
foo: 17,
bar: {
a: 2,
b: 7
},
foobar: [1,2,3]
}

输出将出现:

foo : 17 
a : 2
b : 7
0 : 1
1 : 2
2 : 3

显然有多种方法可以处理此问题,但您需要调整函数以满足您的要求。

关于javascript - 有没有一种遍历 Javascript 对象的所有子属性的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14525821/

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