我们说我有这样的集合:
var myCollection = [
{
name: 'Foo',
age: 35
},{
name: 'Bar',
age: 32
},{
secondRow: [
{
name: 'FooFoo',
age: 21
}, {
name: 'BarBar',
age: 25
}
]
}
];
我想迭代这个集合(具有任意深度),并使用键age
为每个值添加10年。
我该怎么做?
如果有必要,我很乐意使用lodash,但香草JS也很好。
答案 0 :(得分:2)
您可以使用迭代和递归方法获取所有age
属性以进行更新。
function add10(object) {
Object.keys(object).forEach(function (key) {
if (object[key] && typeof object[key] === 'object') {
return add10(object[key]);
}
if (key === 'age') {
object.age += 10;
}
});
}
var myCollection = [{ name: 'Foo', age: 35 }, { name: 'Bar', age: 32 }, { secondRow: [{ name: 'FooFoo', age: 21 }, { name: 'BarBar', age: 25 }] }];
add10(myCollection);
console.log(myCollection);

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