【发布时间】:2023-05-28 14:48:01
【问题描述】:
我正在关注这个伟大的 tutorial,用于根据条件向对象添加(或不添加)属性。
例如:
{ id: 'some-id', ...(true && { optionalField: 'something'})}
但就我而言,我有一个看起来像这样的对象:
我想做的是如果12-AM 属性存在,不要覆盖它,添加到 its 属性,这是一个名为message 的键,它是一个数组
如果它没有添加新的时间密钥,即1230-AM 到April-9-2020
这就是我现在拥有的:
{
...dayInfoInChild,
[currentDate]: { /* April-9-2020 */
[timeOfDayAndHour]: { /* 12-AM */
message: textValueContainer, ['foo']
},
},
}
但是可惜它没有添加它会覆盖......
任何帮助将不胜感激。
【问题讨论】:
-
我会说“别再花哨了”
-
只需使用普通代码和
iftest 来表达您的逻辑并自己控制事物。 -
不要使用对象的图像,以文本形式提供示例数据和代码,以及实际和预期结果。
-
如果你真的必须,你可以使用类似 immutability-helper github.com/kolodny/immutability-helper 的东西(或者写你类似的等价物)。但是你..
var m = dayInfoInChild[currentDate][timeOfDayAndHour]; m.message && m.message=m.message.concat(textValueContainer,['foo'])(不确定这是否是你真正想要做的),为什么要让自己的生活变得困难? -
@user120242 感谢帮助库!我会检查一下。只是一个问题,IAH 我现在的语法不好吗?我错过了什么吗?认为它不是太超出范围......“有一个嵌套对象,这是*/父对象的属性,我如何添加另一个道具?”
标签: javascript ecmascript-6 javascript-objects spread-syntax