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

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

// value = 10
// field = ["data", "input", "level", "0"]
item[field[0]][field[1]][field[2]][field[3]] = value

我不知道从哪里开始使用for循环执行此功能。谁能给我一些建议开始。

最佳答案

Lodash上有一个内置方法可以执行此操作- _.set

_.set(item, field, value)

let item = {
  data: {
    input: {
      level: [5]
    }
  }
};

const field = ["data", "input", "level", "0"];
const value = 10;

_.set(item, field, value);

console.log(item);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>

08-03 16:01
查看更多