JS数组实现分类统计实例代码


Posted in Javascript onSeptember 30, 2018

将水果数组中同类的水果合并为一条并求出总数

var fruits = 
[{
  name: 'apple',
  value: 1
}, 
{
  name: 'apple',
  value: 2
}, // 总计3个苹果
{
  name: 'banana',
  value: 2
}, 
{
  name: 'banana',
  value: 3
}]; // 总计5个香蕉

var fruitTotal = []; // 存最终数据结果

// 数据按照水果名称进行归类
var nameContainer = {}; // 针对键name进行归类的容器
fruits.forEach(item => {
  nameContainer[item.name] = nameContainer[item.name] || [];
  nameContainer[item.name].push(item);
});

console.log(nameContainer); // 按照水果名称归类完成:{ apple: Array(2), banana: Array(2) }

// 统计不同种类水果的数量
var fruitName = Object.keys(nameContainer); // 获取水果种类:["apple", "banana"]
fruitName.forEach(nameItem => {
  let count = 0;
  nameContainer[nameItem].forEach(item => {
    count += item.value; // 遍历每种水果中包含的条目计算总数
  });
  fruitTotal.push({'name': nameItem, 'total': count});
});

console.log(fruitTotal);
// 输出结果:
// [{ name: "apple", total: 3 },
// { name: "banana", total: 5 }]

总结

以上所述是小编给大家介绍的JS数组实现分类统计实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
Jun 14 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
Oct 15 Javascript
javascript打印html内容功能的方法示例
Nov 28 Javascript
jquery统计输入文字的个数并对其进行判断
Jan 07 Javascript
JavaScript中伪协议 javascript:使用探讨
Jul 18 Javascript
Extjs根据条件设置表格某行背景色示例
Jul 23 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
Oct 17 Javascript
用js读写cookie的简单方法(推荐)
Aug 08 Javascript
JavaScript 中使用 Generator的方法
Dec 29 Javascript
优雅的elementUI table单元格可编辑实现方法详解
Dec 23 Javascript
原生js实现五子棋游戏
May 28 Javascript
JavaScript常用工具函数汇总(浏览器环境)
Sep 17 Javascript
浅谈微信页面入口文件被缓存解决方案
Sep 29 #Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
Sep 29 #Javascript
vue使用v-for实现hover点击效果
Sep 29 #Javascript
vue 利用路由守卫判断是否登录的方法
Sep 29 #Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
Sep 29 #Javascript
在vue中v-bind使用三目运算符绑定class的实例
Sep 29 #Javascript
iview同时验证多个表单问题总结
Sep 29 #Javascript
You might like
各种战术和打法的原创者
2020/03/04 星际争霸
用PHP读注册表
2006/10/09 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
2013/06/01 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
js实现表格数据搜索
2020/08/09 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
Python绘制频率分布直方图的示例
2019/07/08 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
通用C#笔试题附答案
2016/11/26 面试题
初中女生自我鉴定
2013/12/19 职场文书
化学教师自荐信范文
2013/12/28 职场文书
心理健康心得体会
2014/01/02 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
教师节演讲稿
2014/05/06 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
门市房租房协议书
2014/12/04 职场文书
匿名信格式范文
2015/05/27 职场文书
小学体育教学随笔
2015/08/14 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电