Js~對數組進行分組戶數


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

感謝各位閱讀!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM