我有一个关于通过给定数组对象动态遍历对象的问题。
尝试使用一些静态代码,但这在存在更多或更少级别的情况下不灵活
// 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>