首页 > 解决方案 > javascript添加或合并到对象

问题描述

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

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'}]})

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

标签: javascriptobject

解决方案


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

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

推荐阅读