Js~对数组进行分组户数
在sql里有g(shù)roup by,主要對(duì)數(shù)據(jù)結(jié)果集進(jìn)行分組統(tǒng)計(jì),而對(duì)于JS來(lái)說(shuō),有時(shí)我們也需要這種功能,例如一個(gè)數(shù)據(jù){"dog","cat","dog","dog"},我們希望結(jié)果是{dog:3,cat:1},返回這種字典對(duì)象,我在網(wǎng)上找了一下資料,看這這種解決方法比較簡(jiǎn)單,所以也總結(jié)了一下,供大家參考。
var arr = [ 'Car', 'Car', 'Truck', 'Boat', 'Truck' ]; var hist = {}; arr.map( function (a) { if (a in hist) hist[a] ++; else hist[a] = 1; } ); console.log(hist);其中核心方法就是map,它是數(shù)組類型的一個(gè)擴(kuò)展方法,主要對(duì)同時(shí)元素的對(duì)象進(jìn)行累加,原理就是一個(gè)遞歸算法,性能當(dāng)然把遍歷要好一些。
而對(duì)于返回的字典對(duì)象,大叔做了幾個(gè)操作,遍歷字典的key和返回字典的key對(duì)應(yīng)的值,也和面向?qū)ο蟮恼Z(yǔ)言大同小異!
遍歷字典鍵(對(duì)象的屬性名)
for(var inner in hist){console.log(inner);}遍歷字典值(對(duì)象的屬性值)
for(var inner in hist){console.log(hist[inner]);}怎么樣,和C#,java都很類似吧!
感謝各位閱讀!
本文轉(zhuǎn)自博客園張占嶺(倉(cāng)儲(chǔ)大叔)的博客,原文鏈接:Js~對(duì)數(shù)組進(jìn)行分組戶數(shù),如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原博主。
總結(jié)
以上是生活随笔為你收集整理的Js~对数组进行分组户数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语音购票、刷脸进站:上海联手阿里打造全球
- 下一篇: 感知机预测NBA总冠军