我有一个关于通过给定数组对象动态遍历对象的问题。
尝试使用一些静态代码,但这在有更多或更少级别的情况下不灵活
// value = 10
// field = ["data", "input", "level", "0"]
item[field[0]][field[1]][field[2]][field[3]] = value
我不知道从哪里开始使用 for 循环执行此操作的函数。谁能给我一些开始的建议。
最佳答案
您可以减少字段并获取一个对象及其属性。最后用最后一个键赋值。
const
setValue = (object, [...path], value) => {
var last = path.pop();
path.reduce((o, k) => o[k] = o[k] || {}, object)[last] = value;
},
object = {},
value = 10,
fields = ["data", "input", "level", "0"];
setValue(object, fields, value);
console.log(object);
关于javascript - 按数组循环遍历对象树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56971427/