在 JavaScript 中使用 ... 修改对象
Posted
技术标签:
【中文标题】在 JavaScript 中使用 ... 修改对象【英文标题】:modifying an object using ... in JavaScript 【发布时间】:2019-09-04 22:19:30 【问题描述】:我有一个名为 added
的对象,如下所示:
title: "test1",
startDate: "Mon Apr 15 2019 10:30:00 GMT-0500 (Central Daylight Time)",
endDate: "Mon Apr 15 2019 11:00:00 GMT-0500 (Central Daylight Time)",
allDay: false
我正在尝试编辑此对象的 startDate
和 endDate
字段:
added =
...added,
added.startDate: "111", added.endDate: "222"
但这给了我一个错误,上面写着
意外的令牌,预期的,
这样做的正确方法是什么?
【问题讨论】:
Using spread operator to update an object value的可能重复 【参考方案1】:当将added
重新分配为新的对象字面量时,s 中的所有内容都需要是键值对,或它需要传播(使用
...
)一个对象键值对到新对象中。您不能将 普通对象 放入对象字面量中(除非您传播它),因为对象是一个值,而不是键值对。
改为:
added =
...added,
startDate: "111",
endDate: "222"
你也可以
added =
...added,
...
startDate: "111",
endDate: "222"
这将是有效的语法(但这样做很愚蠢 - 更容易在外部对象文字中列出新属性)。
【讨论】:
以上是关于在 JavaScript 中使用 ... 修改对象的主要内容,如果未能解决你的问题,请参考以下文章
修改 Javascript 对象副本会使原始对象在 Angular 5 Reactive Forms 中发生变化