JS數(shù)組實(shí)現(xiàn)分類統(tǒng)計(jì)實(shí)例代碼
更新時間:2018年09月30日 08:26:36 作者:SwitchCase_
本文通過實(shí)例代碼給大家介紹了js數(shù)組實(shí)現(xiàn)分類統(tǒng)計(jì)的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
將水果數(shù)組中同類的水果合并為一條并求出總數(shù)
var fruits = [{ name: 'apple', value: 1 }, { name: 'apple', value: 2 }, // 總計(jì)3個蘋果 { name: 'banana', value: 2 }, { name: 'banana', value: 3 }]; // 總計(jì)5個香蕉 var fruitTotal = []; // 存最終數(shù)據(jù)結(jié)果 // 數(shù)據(jù)按照水果名稱進(jìn)行歸類 var nameContainer = {}; // 針對鍵name進(jìn)行歸類的容器 fruits.forEach(item => { nameContainer[item.name] = nameContainer[item.name] || []; nameContainer[item.name].push(item); }); console.log(nameContainer); // 按照水果名稱歸類完成:{ apple: Array(2), banana: Array(2) } // 統(tǒng)計(jì)不同種類水果的數(shù)量 var fruitName = Object.keys(nameContainer); // 獲取水果種類:["apple", "banana"] fruitName.forEach(nameItem => { let count = 0; nameContainer[nameItem].forEach(item => { count += item.value; // 遍歷每種水果中包含的條目計(jì)算總數(shù) }); fruitTotal.push({'name': nameItem, 'total': count}); }); console.log(fruitTotal); // 輸出結(jié)果: // [{ name: "apple", total: 3 }, // { name: "banana", total: 5 }]
總結(jié)
以上所述是小編給大家介紹的JS數(shù)組實(shí)現(xiàn)分類統(tǒng)計(jì)實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript中Array.from()的用法總結(jié)
本文主要介紹了JavaScript中Array.from()的用法總結(jié)2023-05-05JS Pro-深入面向?qū)ο蟮某绦蛟O(shè)計(jì)之繼承的詳解
一般的面向?qū)ο蟪绦蛘Z言,有兩種繼承方法——接口繼承(interface inheritance)和實(shí)現(xiàn)繼承(implementation inheritance)。接口繼承只繼承方法簽名,而實(shí)現(xiàn)繼承則繼承實(shí)際的方法。在JavaScript中,函數(shù)沒有簽名,所以在JavaScript只支持實(shí)現(xiàn)繼承,而且主要是依靠原型鏈(prototype chaining)來是實(shí)現(xiàn)的2013-05-05深入理解typescript中的infer關(guān)鍵字的使用
infer 這個關(guān)鍵字,整理記錄一下,避免后面忘記了。具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06