有時候,某個請求返回的數據是很雜亂的,需要按照一些規則重新排列組合。
例:這樣的數據:
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);
結果為:

這樣的結果符合要求。
