Sum all data in array of objects into new array of objects

后端 未结 14 983
借酒劲吻你
借酒劲吻你 2020-12-29 03:32

I have an array of objects that looks like this:

var data = [{costOfAirtickets: 2500, costOfHotel: 1200},{costOfAirtickets: 1500, costOfHotel: 1000}]
         


        
14条回答
  •  一个人的身影
    2020-12-29 04:14

    You could reduce the array by taking an object for summing.

    var data = [{ costOfAirtickets: 2500, costOfHotel: 1200 }, { costOfAirtickets: 1500, costOfHotel: 1000 }],
        keys = ['costOfAirtickets', 'costOfHotel'],
        sum = data.reduce((r, o) => {
            keys.forEach(k => r[k] += o[k]);
            return r;
        }, Object.assign(...keys.map(k => ({ [k]: 0 }))));
    
    console.log(sum);

提交回复
热议问题