将键和增量值添加到对象数组 [英] Add key and incremental values to array of objects
问题描述
我有一个对象数组.我想向每个对象添加另一个属性,但是我希望该值本质上是递增的.我希望每个人都比其他人多5个.
I have an array of objects. I want to add another property to each of the objects but I want the value to be incremental in nature. I want each to be 5 more than the other.
我的对象数组:
let arr_obj = [
{
name: 'Hermione',
order: 'books',
},
{
name: 'Harry',
order: 'brooms',
},
{
name: 'Ron',
order: 'food',
}
]
我想向数组中的每个对象添加另一个属性,并希望该值比前一个少25.
I want to add another property to each of the objects in the array and want the value to be 25 less the previous one.
所以我希望我的对象看起来像什么(预期结果):
So what I want my object to look like (expected result):
arr_obj = [
{
name: 'Hermione',
order: 'books',
order_size: 100,
},
{
name: 'Harry',
order: 'brooms',
order_size: 75, //100-25
},
{
name: 'Ron',
order: 'food',
order_size: 50, //75-25
}
]
我尝试了forEach,但没有用.它不会减去25.
I tried a forEach but that is not working. It does not subtract the 25.
let order_size = 100;
arr_obj.forEach(d => {
d['order_size'] = order_size-25;
});
当我这样做时,我会得到:
When I do this, I am getting:
arr_obj = [
{
name: 'Hermione',
order: 'books',
order_size: 100,
},
{
name: 'Harry',
order: 'brooms',
order_size: 100,
},
{
name: 'Ron',
order: 'food',
order_size: 100,
}
]
我如何获得预期的结果?
How do I get the expected result?
推荐答案
您忘记了每次迭代都修改order_size.试试这个:
You forgot to modify order_size on each iteration. try this:
let arr_obj = [
{
name: 'Hermione',
order: 'books',
},
{
name: 'Harry',
order: 'brooms',
},
{
name: 'Ron',
order: 'food',
}
];
let order_size = 100;
arr_obj.forEach(d => {
d['order_size'] = order_size;
order_size -= 25;
});
console.log(arr_obj)
这篇关于将键和增量值添加到对象数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!