How to group or merge this array of objects in javascript?

前端 未结 8 847
悲&欢浪女
悲&欢浪女 2020-12-18 23:22

I have an array of objects like below for example.

{name: \"Mc Donald\", quantity: 4, maleCount: 1, femaleCount: 0}
{name: \"KFC\", quantity: 9, maleCou         


        
8条回答
  •  一向
    一向 (楼主)
    2020-12-18 23:39

    Lodash makes your life easy.

    _.map(_.groupBy(yourArrayHere, 'name'), (groupMembers, groupKey) => {
        let sumObject = {name: groupKey};
    
        _.forEach(['quantity', 'maleCount', 'femaleCount'], (property) => {
            sumObject[property] = 0;
            _.forEach(groupMembers, (member) => {
                sumObject[property] += member[property];
            });
        });
    
        return sumObject;
    });
    

提交回复
热议问题