javascript - javascript中传播运算符的问题
问题描述
我想重写一个数组并在决赛中得到一个新的。这是我的代码:
const arr = [
{
type:"Fiat", model:"500", color:"white"
},
{
type:"ford", model:"5300", color:"gray"
}
];
const newArr = arr.map(i => {
const r = {
...arr,
power:2
}
return r
})
console.log(newArr)
现在我得到了错误的结果,因为每次迭代,新数组都会随着第一个数组的副本增长:
const r = {
...arr,
power:2
}
如何获得下一个结果?
{
type:"Fiat", model:"500", color:"white", power: 2
},
{
type:"ford", model:"5300", color:"gray", power: 2
}
解决方案
您正在传播arr
。您需要传播i
数组内的对象。
const arr = [
{
type:"Fiat", model:"500", color:"white"
},
{
type:"ford", model:"5300", color:"gray"
}
];
const newArr = arr.map(i => {
const r = {
...i,
power:2
}
return r;
})
console.log(newArr)
使用数组函数,您可以隐式地
const arr = [
{
type:"Fiat", model:"500", color:"white"
},
{
type:"ford", model:"5300", color:"gray"
}
];
const newArr = arr.map(i => ({...i, power: 2}));
console.log(newArr)
推荐阅读
- reactjs - 按下时 onPress 函数不会触发
- git - Github 评论格式强制执行
- guid - 如何从 Tibco BW5 生成 CorrelationID?
- python - 如何在 Python 中对复制的 MagicMock 调用方法?
- javascript - 使用 javascript (this) 将参数传递给另一个函数
- c++ - Qt two serial ports send and receive
- python - pandas - 通过迭代过滤器计算平均值
- angular - 如何使用 Angular 6 从 Web API 服务中创建列表
- c# - 到目前为止检查 Moq Call 参数
- django - 在 Docker 容器中运行时芹菜不工作