文章出處
文章列表
在sql里有group by,主要對數據結果集進行分組統計,而對于JS來說,有時我們也需要這種功能,例如一個數據{"dog","cat","dog","dog"},我們希望結果是{dog:3,cat:1},返回這種字典對象,我在網上找了一下資料,看這這種解決方法比較簡單,所以也總結了一下,供大家參考。
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,它是數組類型的一個擴展方法,主要對同時元素的對象進行累加,原理就是一個遞歸算法,性能當然把遍歷要好一些。
而對于返回的字典對象,大叔做了幾個操作,遍歷字典的key和返回字典的key對應的值,也和面向對象的語言大同小異!
遍歷字典鍵(對象的屬性名)
for(var inner in hist) { console.log(inner); }
遍歷字典值(對象的屬性值)
for(var inner in hist) { console.log(hist[inner]); }
怎么樣,和C#,java都很類似吧!
感謝各位閱讀!
文章列表
全站熱搜