使用数组作为参考来更新JavaScript对象

3

我有一个JavaScript对象;

xml
-nutrition
--daily values
--food
---0
----fat=20g
----sodium=
---1
----fat=20g
----sodium=5mg
---2
----fat=20g
----sodium=5mg
-stores
--0
--1

我还有一个动态生成的javascript数组。
["xml", "nutrition", "food", 0]

如何根据此数组更新JavaScript对象?而不需要手动输入。
myobj[array[0]][array[1]][array[2]][array[3]].fat = '30g';
1个回答

6
你可以使用 Array#reduce() 进行操作。

它会遍历所有的给定的键,并返回一个最后的引用以供进一步使用。

["xml", "nutrition", "food", 0].reduce(function (r, k) {
    return r[k];
}, myobj).fat = '30g';

或者ES6
["xml", "nutrition", "food", 0].reduce((r, k) => r[k], myobj).fat = '30g';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接