javascript - 按数组循环遍历对象树

标签 javascript arrays object for-loop

我有一个关于通过给定数组对象动态遍历对象的问题。

尝试使用一些静态代码,但这在有更多或更少级别的情况下不灵活

// 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/

相关文章:

javascript - 如何使用formik实现最新6版本的mui Timepicker

java - 访问 Java 库的 HTML5 移动应用程序?

javascript - 如何比较对象内的值具有不同序列的数组javascript

javascript - 数组拼接删除数组中的所有元素

java - 如何从android中的Map中获取键值对

c# - 为什么 GC.GetTotalMemory() 和 CLR Profiler 数字之间存在巨大差异?

javascript获取父对象/变量的名称

javascript - 从数据属性动态获取值

javascript - 如何在 PhoneGap 中使用 Magento API Soap Web 服务

javascript - 为什么我不能在 Javascript 上控制台记录/字符串化整个数组?