将键和增量值添加到对象数组 [英] Add key and incremental values to array of objects

查看:55
本文介绍了将键和增量值添加到对象数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个对象数组.我想向每个对象添加另一个属性,但是我希望该值本质上是递增的.我希望每个人都比其他人多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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆