gpt4 book ai didi

javascript - map 方法中的散布算子复制对象时的使用方法

转载 作者:行者123 更新时间:2023-12-03 11:25:20 26 4
gpt4 key购买 nike

我正在尝试在Angular应用程序中使用传播运算符复制对象并添加新属性。要添加新属性,我想调用一个方法'addNewProperty(name),该方法返回该属性及其值。当我尝试使用传播运算符调用此方法时,出现有关意外 token 的错误。

这是我的代码

this.files = files['results'].map(file => ({...file, this.addNewProperty(file.name)}));

addNewProperty(name) {
return {
extension: name.split('-')[1]
};
}

另一方面,当我使用“传统” Object.assign()时,一切都很好
this.files = files['results'].map(file => Object.assign(file, this.addNewProperty(file.name)));

您能否解释一下,为什么Object.assign()正常工作,而用{...,myMethod()}复制却不起作用?

最佳答案

您还需要传播新对象。否则,您会有一些没有 key 的东西。

this.files = files['results'].map(file => ({...file, ...this.addNewProperty(file.name)}));
// ^^^

关于javascript - map 方法中的散布算子复制对象时的使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59772871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com