1. 程式人生 > >js陣列實現分類統計

js陣列實現分類統計

將水果陣列中同類的水果合併為一條並求出總數

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 }]