JavaScript對數組中有相似屬性對象進行合並


原理:需要一個新的數組存儲合並后的對象,因為原對象數組中存儲的有相似的對象,新數組是存儲對的是對原數組合並后的對象,索引它們的索引是對不上的,這里就需要一個新數組進行標記,對已經加入到新數組的對象進行標示,再用includes()和indexOf()等方法進行判斷是否已經合並過了,沒合並過的直接按照需求對屬性處理后加入新數組和標示數組中,新數組中有了就進行合並操作。

代碼:

 

let list=[
            {
                id:1,
                name:"測試",
                num:1,

            },
            {
                id:1,
                name:"測試1",
                num:1,
            },
            {
                id:2,
                name:"測試2",
                num:1,
            },
            {
                id:1,
                name:"測試1",
                num:1,
            },
            {
                id:1,
                name:"測試1",
                num:1,
            },
            {
                id:2,
                name:"測試2",
                num:1,
            },
        ];
        let idList=[];
        let newList=[];
        list.forEach((item,index)=>{
            if(idList.indexOf(item.id)=='-1'){
                //新數組里面沒有直接加入
                newList.push({
                    id:item.id,
                    num:item.num,
                    name:item.name
                }) 
                idList.push(item.id);         
            }else{
                //需要合並的屬性
                newList[idList.indexOf(item.id)].num+=item.num;
                newList[idList.indexOf(item.id)].name+=item.name
            }
                       
        })
        console.log('newList-------',newList);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM