在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~对数组进行分组户数,如需转载请自行联系原博主。

Js~对数组进行分组户数相关推荐

  1. 对对象数组进行分组的最有效方法

    本文翻译自:Most efficient method to groupby on an array of objects What is the most efficient way to grou ...

  2. php如何对数组进行分组,如何在PHP中对数组进行分组排序

    如何在PHP中对数组进行分组排序 发布时间:2021-01-04 16:28:51 来源:亿速云 阅读:98 作者:Leah 这篇文章将为大家详细讲解有关如何在PHP中对数组进行分组排序,文章内容质量 ...

  3. Js面试题(一)--js实现数组去重怎么实现?

    方法1.创建一个新的临时数组来保存数组中已有的元素 方法2.使用哈希表存储已有元素 方法3.使用indexof判断数组元素第一次出现的位置是否为当前位置 方法4.先排序再去重 第一种方法和第三种方法都 ...

  4. js调整数组某些元素到指定位置顺序_Js数组里剔除指定的元素(不是指定的位置)...

    s数组里删除指定的元素(不是指定的位置) 之前一直是做后端的,从来也没有写过js,但是却一直想学学,也只是基于兴趣而已!现在到了这个公司,确实大量的写js.但也一直都是没有系统的去看过js!都是搞什么 ...

  5. js之数组,对象,类数组对象

    2019独角兽企业重金招聘Python工程师标准>>> 许久不写了,实在是不知道写点什么,正好最近有个同事问了个问题,关于数组,对象和类数组的,仔细说起来都是基础,其实都没什么好讲的 ...

  6. [Js]删除数组指定元素

    写在前面 在最近的项目中,有用到js对数组的操作,之前自己几乎没有用到这种方法,这里就记录一下,算是对学到的东西的一种总结吧. 数组对象splice方法 splice() 方法向/从数组中添加/删除项 ...

  7. android js变量定义数组长度,js 声明数组和向数组中添加对象变量的简单实例

    数组有四种定义的方式 使用构造函数: var a = new Array(); var b = new Array(10); var c = new Array("first", ...

  8. JS删除数组元素的函数介绍

    有时候我们需要数组元素的值,那么就可以参考下面的方法,文中提到了不少这方面的资料,数组去重功能等 split将字符串转为数组并输出的代码: 复制代码 代码如下: <script language ...

  9. Js传递数组参数到后台controller的方式

    分享一篇js传递数组参数到后台controller的方法,具有很好的参考价值,希望对大家有所帮助. 传递参数传递字符串,所以要把数组转换为字符串, var arr=[1,23,34,5]; var s ...

最新文章

  1. install flash player plugin: linux 11.10 --chrome
  2. python手机版怎么用-如何优雅的在手机上进行Python编程
  3. 阿里云上创建个人网站
  4. python提示jsondecodeerror是什么意思_python中报错json.decoder.JSONDecodeError: Expecting value:的解决...
  5. 2017年单多晶市场竞争核心分析
  6. 处理SQL Server中的重复行
  7. android thread线程通讯
  8. hive 强转为string_String 源码浅析————终结篇
  9. URAL 1586. Threeprime Numbers 数位dp
  10. HEVC—SAO技术
  11. Photoshop cc2019 破解教程
  12. 【科普】当手机遭遇短信验证码轰炸,这几点尤其要注意
  13. fit into用法
  14. Eclipse中无法输入中文
  15. 【云原生】安全容器 Kata Containers
  16. 启用计算机无线网络连接,哪位清楚笔记本电脑如何启用无线网络连接
  17. SpringBoot导出word模板并动态渲染数据
  18. python爬虫爬取网易云音乐歌曲_Python网易云音乐爬虫进阶篇
  19. 解决垃圾小米文件管理器删除文件后存储空间不变,内存不变大,不释放空间。解决方法:点图中那个结束运行,再重新打开软件(直接滑动退出后台无效果)
  20. JavaScript之for循环、while循环 continue、break与代码规范

热门文章

  1. 给oracle用户赋权限导入导出,Oracle常用命令-用户、表空间、赋权限、导入导出...
  2. linux 如何运行r脚本,Linux系统下如何debug R脚本
  3. python怎么new对象_Python使用__new__()方法为对象分配内存及返回对象的引用示例
  4. 机器视觉 · 立体相机
  5. 全球及中国深紫外LED行业盈利状况与前景动态研究报告2022版
  6. axios捕获401 赋值token
  7. kibana一直弹出来报错?
  8. String,StringBuffer,StringBulider 三者的区别
  9. android ScrollView 控制行数
  10. Visual Studio Code搭建TypeScript开发环境