文章出處

在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都很類似吧!

感謝各位閱讀!


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()