【发布时间】:2021-06-21 13:08:38
【问题描述】:
我有一个对象数组。我想为每个对象添加另一个属性,但我希望该值本质上是递增的。我希望每个人都比另一个人多 5 个。
我的对象数组:
let arr_obj = [
{
name: 'Hermione',
order: 'books',
},
{
name: 'Harry',
order: 'brooms',
},
{
name: 'Ron',
order: 'food',
}
]
我想为数组中的每个对象添加另一个属性,并希望该值比前一个值小 25。
所以我希望我的对象看起来像什么(预期结果):
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。
let order_size = 100;
arr_obj.forEach(d => {
d['order_size'] = order_size-25;
});
当我这样做时,我得到:
arr_obj = [
{
name: 'Hermione',
order: 'books',
order_size: 100,
},
{
name: 'Harry',
order: 'brooms',
order_size: 100,
},
{
name: 'Ron',
order: 'food',
order_size: 100,
}
]
如何获得预期的结果?
【问题讨论】:
-
试试
order_size -= 25 -
不,这不是你得到的。但事实上,如果你一遍又一遍地做同样的
order_size-25,它总是会给出相同的结果(75,而不是 100)。您必须更新order_size减少 25 岁。
标签: javascript jquery arrays object ecmascript-6