如何使用lodash或普通javascript添加新的或更新现有的对象属性?

时间:2018-02-10 07:27:16

标签: javascript lodash

假设你已经定义了一个像这样的对象:

let myObject = {};

并且您要添加可能已存在或可能尚未存在的未知属性。到myObject看起来更像的地方:

{
    foo: {
        prop: 'SOME PROP NAME',
        val:  'SOME VAL'
    },
    bar: {
        prop: 'SOME PROP NAME',
        val:  'SOME VAL'
    },
    baz: {
        prop: 'SOME PROP NAME',
        val:  'SOME VAL'
    }
}

请注意,foo.propfoo.val可能会在不同时间设置。在同时设置道具和val的情况下,我可能只是使用_.assign(),也许它就像添加了额外图层一样简单。

假设有以下功能:

updateMyObject(e, attr, key) {
    myObject[attr][key] = e.target.value;
}

这显然不起作用

我正在寻找 工作的功能。

1 个答案:

答案 0 :(得分:0)

在添加新密钥和值之前,您可以检查myObject是否包含attr,否则创建它。

updateMyObject(e, attr, key) {
  if(!(attr in myObject))
    myObject[attr] = {};
  myObject[attr][key] = e.target.value;
}