我有这个数组:
let arr = [ { "Id": 0, "Name": "Product 1", "Price": 10 },
{ "Id": 0, "Name": "Product 1", "Price": 15 } ]
如何将所有1
位置中的Price
总结为:
let Final_arr = [ { "Id": 0, "Name": "Product 1", "Price": 11 },
{ "Id": 0, "Name": "Product 1", "Price": 16 } ]
谢谢! ;)
答案 0 :(得分:3)
遍历数组并递增price
:
请记住,这将改变原始数组,
使用arr.slice(0).forEach( ...
保持原文不变。
let arr = [{
"Id": 0,
"Name": "Product 1",
"Price": 10
},
{
"Id": 0,
"Name": "Product 1",
"Price": 15
}
]
arr.forEach((e) => {
return e.Price++
});
/*
const newArr = arr.slice(0).forEach((e) => {
return e.Price++
});
*/
console.log(arr)
答案 1 :(得分:3)
您还可以使用for
循环:
var arr = [{
"Id": 0,
"Name": "Product 1",
"Price": 10
},
{
"Id": 0,
"Name": "Product 1",
"Price": 15
}
];
for (var i = 0; i < arr.length; i++)
arr[i].Price++;
console.log(arr);
答案 2 :(得分:2)
arr.map((a) => { a.Price = a.Price + 1 });
答案 3 :(得分:1)
你可以克隆数组并映射它以获得一个新数组,如下所示:
let arr = [ { "Id": 0, "Name": "Product 1", "Price": 10 },
{ "Id": 0, "Name": "Product 1", "Price": 15 } ];
let newArr = JSON.parse(JSON.stringify(arr)).map(function(item){
item.Price++;
return item;
});
console.log(newArr);
答案 4 :(得分:1)
使用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 };
});