js陣列實現分類統計
摘要:
將水果陣列中同類的水果合併為一條並求出總數
var fruits =
[{
name: 'apple',
value: 1
},
{
name: 'apple',
value: 2
}, // 總計3個蘋果
{
...
將水果陣列中同類的水果合併為一條並求出總數
var fruits = [{ name: 'apple', value: 1 }, { name: 'apple', value: 2 }, // 總計3個蘋果 { name: 'banana', value: 2 }, { name: 'banana', value: 3 }]; // 總計5個香蕉 var fruitTotal = [];// 存最終資料結果 // 資料按照水果名稱進行歸類 var nameContainer = {}; // 針對鍵name進行歸類的容器 fruits.forEach(item => { nameContainer[item.name] = nameContainer[item.name] || []; nameContainer[item.name].push(item); }); console.log(nameContainer); // 按照水果名稱歸類完成:{ apple: Array(2), banana: Array(2) } // 統計不同種類水果的數量 var fruitName = Object.keys(nameContainer); // 獲取水果種類:["apple", "banana"] fruitName.forEach(nameItem => { let count = 0; nameContainer[nameItem].forEach(item => { count += item.value; // 遍歷每種水果中包含的條目計算總數 }); fruitTotal.push({'name': nameItem, 'total': count}); }); console.log(fruitTotal); // 輸出結果: // [{ name: "apple", total: 3 }, //{ name: "banana", total: 5 }]