fer*_*020 3 javascript iteration properties
鉴于我有一个javascript对象,有没有办法迭代所有原始子属性?
例如,如果我有一个对象
{
foo: 17,
bar: {
a: 2,
b: 7
}
}
Run Code Online (Sandbox Code Playgroud)
我想迭代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);
Run Code Online (Sandbox Code Playgroud)
这会产生输出:
foo : 17
a : 2
b : 7
Run Code Online (Sandbox Code Playgroud)
关于此功能的说明.它可以对任何对象进行处理.例如,如果对象中有一个数组,则会为数组中的每个项目获取单独的行.
所以对于以下对象:
var x = {
foo: 17,
bar: {
a: 2,
b: 7
},
foobar: [1,2,3]
}
Run Code Online (Sandbox Code Playgroud)
输出将出现:
foo : 17
a : 2
b : 7
0 : 1
1 : 2
2 : 3
Run Code Online (Sandbox Code Playgroud)
显然有办法处理这个问题,但您需要定制功能以满足您的要求.
| 归档时间: |
|
| 查看次数: |
1374 次 |
| 最近记录: |