如何用未知数量的对象键修改嵌套对象?

时间:2019-11-15 16:23:20

标签: javascript arrays node.js json

这个问题很难说出来。假设我有一个像这样的数组:

var object = {
  key1a: {
    key2a: {
      key3a: value,
      key3b: value,
      key3c: value
    },
    key2b: {
      key3a: value,
      key3b: value,
      key3c: value
    }
  },
  key1b: {
    key2a: {
      key3a: value,
      key3b: value,
      key3c: value
    },
    key2b: {
      key3a: value,
      key3b: value,
      key3c: value
    }
  }
}

我需要做这样的事情:

let key = 'key2a';
let value = {key3a: 'value1', key3c: 'value2', key3d: 'value5'};
object.key1b[key] = value;

但是我还需要做这样的事情:

let key = 'key2b.key3a';
let value = 'value1';
object.key1a[key] = value;

我需要一种选择任意数量的对象键并修改值的方法。

我想过类似的事情,但是不确定是否可以编辑对象变量:

let keys = ['key2a', 'key3b'];

let file = object.key1a;
keys.forEach(function(key){
    file = file[key];
});
file = content;

键列表可以无限扩大,所以我不能只使用if语句。

如何编辑键数未知的嵌套对象?

注意:我正在使用node.js并从数据库文件中提取对象列表,修改json,并将修改后的列表保存在数据库中,以覆盖旧列表。对象列表也可能变得非常大,因此,我尽可能避免创建新数组。

0 个答案:

没有答案