javascript add or merge to object



我被困住了。我正在寻找一种在对象中添加或创建数据的解决方案。 例如,我从一个空对象开始。

var Foo = {};

如何在不检查键是否已经"单击"的情况下为对象键赋值?

{
'clicked' : [
{'foo' : 'bar'},
{'blah', 'blaat'}
]
}

通常你会做:

Foo.clicked = [];
Foo.clicked.push({'foo' : 'bar'});
Foo.clicked.push({'blah', 'blaat'});

有没有一种更优雅的方法将数据分配给Foo而不检查"点击"的键是否已经存在?某种合并,如果它消除?

我尝试过类似的东西:

Object.assign({'click' : [{'foo':'bar'}]}, {'click' : [{'blah':'blaat'}]})

但最后一个是覆盖第一个。

如果第一个操作数(属性(是假的,您可以使用逻辑 OR||进行检查并分配一个数组。

Foo.clicked = Foo.clicked || [];
Foo.clicked.push({ foo: 'bar' });
Foo.clicked.push({ blah: 'blaat' });

有没有一种更优雅的方法将数据分配给Foo而不检查是否 "点击"的键已经存在?

您可以直接使用:

if (Foo.hasOwnProperty('clicked') !== true) {
[... CODE HERE...]
}

返回布尔值,指示属性'clicked'尚不存在。

最新更新