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


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)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM