特定对象位置的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;i console.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 };
});