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

感谢各位阅读!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:Js~对数组进行分组户数,如需转载请自行联系原博主。

目录
相关文章
|
13天前
|
存储 JavaScript 索引
JS中数组的相关方法介绍
JS中数组的相关方法介绍
|
13天前
|
JavaScript Java
JS有趣的灵魂 清空数组
JS有趣的灵魂 清空数组
|
1月前
|
JavaScript 前端开发 API
常用JavaScript 数组 API大全
常用JavaScript 数组 API大全
32 0
|
2月前
|
JavaScript 前端开发
JS将两个数组和合并成数组包对象格式的方法
JS将两个数组和合并成数组包对象格式的方法
27 0
|
1月前
|
存储 JavaScript 前端开发
在JavaScript中,对象和数组是如何进行扩展的?
在JavaScript中,对象和数组是如何进行扩展的?
22 4
|
1月前
|
JavaScript
JS数组增删方法的原理,使用原型定义
JS数组增删方法的原理,使用原型定义
|
6天前
|
JavaScript 前端开发 索引
JavaScript 数组中的增、删、改、查
JavaScript 数组中的增、删、改、查
|
20天前
|
JavaScript 前端开发
JavaScript数组的功能内置类型
数组是JavaScript的内置类型,JavaScript数组的功能特别强大。下面简单介绍一下JavaScript数组。
|
21天前
|
存储 JavaScript 前端开发
在浏览器中存储数组和对象(js的问题)
在浏览器中存储数组和对象(js的问题)
|
1月前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可为任意类型,有序且支持get、set、has、delete操作;Set存储唯一值,提供add、delete、has方法。两者皆可迭代。示例展示了Map和Set的基本用法,如添加、查询、删除元素。
15 2