javascript - 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'}]})
但最后一个覆盖了第一个。
解决方案
如果第一个操作数(属性)是假的,您可以使用逻辑 OR||
进行检查并分配一个数组。
Foo.clicked = Foo.clicked || [];
Foo.clicked.push({ foo: 'bar' });
Foo.clicked.push({ blah: 'blaat' });
推荐阅读
- javascript - Rails 6:未捕获的引用错误 - $ 未定义
- sql - 如何根据不同的标准对组进行细分
- android - Andriod:导航栏隐藏,但活动未填满屏幕
- java - Android Studio RecyclerView:没有附加适配器;跳过布局
- javascript - 是否可以使用多个带有 react useReducer 钩子的减速器来管理状态?
- elasticsearch - Kubernetes 上的 Elasticsearch -“弹性云 (ECK)”与“Helm 图表”
- php - 无法通过 PHP 连接到 docker mysql 容器
- tensorflow - 确定 Tensorflow Hub 保存模型中的标签集
- python - Django,从查询集转换为 json 并使用键中的值
- azure - 用于容器的 Azure webapp,无法将 azure blob 存储帐户附加到容器