将数组里某个属性相同的对象合并成一个数组

var array=[
        { id:1,name:'小明',sex:'男'},
        { id:2,name:'小刚',sex:'男'},
        { id:3,name:'小红',sex:'女'},
        { id:4,name:'小花',sex:'女'},
        { id:5,name:'小甜甜',sex:'女'},
    ]
    var obj={ },newArr=[];
    array.forEach(function(item,suffix){ 
        //根据对象的属性是唯一的,将值作为对象的属性名
        if(!obj[item.sex]){ 
            var arr=[];
            arr.push(item);
            newArr.push(arr);
            obj[item.sex]=item;
        }else{ 
            newArr.forEach(function(value,index){ 
                //如果已经存在 就循环新组的值将值插入属性相同的数组里 为了防止重复添加 只要和第一个比较就可以了
                if(value[0].sex==item.sex){ 
                    value.push(item)
                }
            })
        }
    })
    console.log(obj);
    console.log(newArr)
    原文作者:爱技术的大仙
    原文地址: https://blog.csdn.net/weixin_55799355/article/details/123970092
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞