gpt4 book ai didi

typescript - Array.map 和 Typescript 对象扩展运算符未映射到原始数组

转载 作者:行者123 更新时间:2023-12-02 20:36:34 27 4
gpt4 key购买 nike

我在 Typescript 中有一个成员数组。

const members = [
{
name: 'John Lennon',
id: 1
},
{
name: 'Led Zeppelin',
id: 2
},
{
name: 'Freddie Mercury',
id: 3
}
];

当我尝试映射它并添加 key 时

members.map(member => {
member.designation = 'Singer';
return member;
});

它成功覆盖数组并添加键指定。但是当我尝试使用对象扩展运算符做同样的事情时。

members.map(member => ({
...member,
designation: 'Singer'
}));

它成功编译,没有错误,但同时没有将键designation映射到我的成员数组上。

这是正确的方法吗,还是我遗漏了一些东西,这只是 Typescript 对象传播操作的问题。

最佳答案

在第一个示例中,您修改对象,在第二个示例中,您创建一个新对象,该对象将具有原始成员的值和新的指定属性。您需要获取由 map 创建的新对象数组并使用它:

var memberWithDesignation = members.map(member => ({
...member,
designation: 'Singer'
}));
console.log(memberWithDesignation[0].designation); // Will output Singer

关于typescript - Array.map 和 Typescript 对象扩展运算符未映射到原始数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46957024/

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