數組數據處理--按某個key篩選數組,value相同的合並為一個數組


有時候,某個請求返回的數據是很雜亂的,需要按照一些規則重新排列組合。

例:這樣的數據:

var list=[
    {"companyId":1,"companyName":"公司一","name":"張春"},
    {"companyId":1,"companyName":"公司一","name":"王夏"},
    {"companyId":2,"companyName":"公司二","name":"李秋"},
    {"companyId":2,"companyName":"公司二","name":"趙冬"},
    {"companyId":3,"companyName":"公司三","name":"劉季"}                
]

現在想按照公司來處理,把相同id的公司中的人員放在一個數組中,最后的結果是,有多少個公司,就返回多少個數組。

 

可以這樣操作:

var list=[
    {"companyId":1,"companyName":"公司一","name":"張春"},
    {"companyId":1,"companyName":"公司一","name":"王夏"},
    {"companyId":2,"companyName":"公司二","name":"李秋"},
    {"companyId":2,"companyName":"公司二","name":"趙冬"},
    {"companyId":3,"companyName":"公司三","name":"劉季"}                
]            

var listNew = [];

list.forEach(function(el){
    for(var i=0;i<listNew.length;i++){
        if(listNew[i].companyId == el.companyId){
            listNew[i].people.push({
                name: el.name
            });
            return;
        }
    }                    
    listNew.push({
        companyId: el.companyId,
        companyName: el.companyName,
        people: [{
            name: el.name                    
        }]
    });    
});
                        
console.log(listNew);

 

結果為:

這樣的結果符合要求。


免責聲明!

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



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