特定对象位置的Javascript对象数组和

特定对象位置的Javascript对象数组和,javascript,Javascript,我有这个阵列: let arr = [ { "Id": 0, "Name": "Product 1", "Price": 10 }, { "Id": 0, "Name": "Product 1", "Price": 15 } ] 如何将所有Price头寸的1相加为: let Final_arr = [ { "Id": 0, "Name": "Product 1", "Price": 11 }, { "Id": 0, "Name":

我有这个阵列:

let arr = [ { "Id": 0, "Name": "Product 1", "Price": 10 }, 
            { "Id": 0, "Name": "Product 1", "Price": 15 } ]
如何将所有
Price
头寸的
1
相加为:

let Final_arr = [ { "Id": 0, "Name": "Product 1", "Price": 11 }, 
                  { "Id": 0, "Name": "Product 1", "Price": 16 } ]

谢谢!;)

在数组中循环并增加
价格
: 请记住,这将使原始数组发生变异, 使用
arr.slice(0).forEach(…
保持原样

让arr=[{
“Id”:0,
“名称”:“产品1”,
“价格”:10
},
{
“Id”:0,
“名称”:“产品1”,
“价格”:15
}
]
arr.forEach((e)=>{
返回e.价格++
});
/*
const newArr=arr.slice(0).forEach((e)=>{
返回e.价格++
});
*/

console.log(arr)
您可以克隆阵列并将其映射到新阵列,如下所示:

让arr=[{“Id”:0,“Name”:“Product 1”,“Price”:10},
{“Id”:0,“名称”:“产品1”,“价格”:15}];
让newArr=JSON.parse(JSON.stringify(arr)).map(函数(项){
价格++;
退货项目;
});

console.log(newArr);
使用es2015语法可以通过以下方式实现:

const Final_arr = arr.map((item) => {
    return { ...item, price: item.Price + 1 };
});
使用vanilla JS,您可以执行以下操作:

var Final_arr = arr.map(function (item) {
    return { Id: item.Id, Name: item.Name, Price: item.Price + 1 };
});

您还可以为循环使用

var-arr=[{
“Id”:0,
“名称”:“产品1”,
“价格”:10
},
{
“Id”:0,
“名称”:“产品1”,
“价格”:15
}
];
对于(变量i=0;iconsole.log(arr);
到目前为止你试过什么吗?我试过使用
map
reduce
,但没有达到我的预期:(让finalArr=arr.map(item=>({…item,“Price”:item[“Price”]+1}))但这将返回一个数字数组,而不是具有修改的price@Efemorav运行代码段,您将看到它返回相同的原始结构。这是一个“错误”使用
array.map
。这与
array.forEach
的操作方式相同,因为您没有映射数组以返回某些内容。@Phiter,同意,我想我想我想得太快了,我更正了答案,Thnx首先,感谢您的回答!非常清楚。我想知道为什么
array.map
与forEach的
var Final_arr = arr.map(function (item) {
    return { Id: item.Id, Name: item.Name, Price: item.Price + 1 };
});