JavaScript统计数组中相同的数量的方法总结
目录
- 实现方法
- 使用方法
- 测试方法
- 结论
在JavaScript中,我们经常需要对数组中对象的属性进行统计。例如,我们可能有一个包含产品名称和数量的数组,我们需要统计每个产品名称出现的次数,并将其数量相加。在本文中,我们将介绍如何使用JavaScript来实现这一功能。
实现方法
我们可以使用reduce()
方法和一个对象来统计数组中相同关键词的数量。reduce()
方法是JavaScript中的一个高阶函数,它接收一个回调函数作为参数,并迭代数组中的每个元素。回调函数上一次的返回值将成为下一次调用时的第一个参数。
const products = [ { name: 'Apple', num: 2 }, { name: 'Orange', num: 1 }, { name: 'Banana', num: 3 }, { name: 'Apple', num: 4 } ] const result = products.reduce((acc, cur) => { if (acc[cur.name]) { acc[cur.name] += cur.num } else { acc[cur.name] = cur.num } return acc }, {})
在上面的代码中,我们定义了一个products
数组,它包含了四个产品的名称和数量。然后,我们使用reduce()
方法将products
数组转换为一个对象。在回调函数中,我们检查当前元素的名称是否已经存在于对象中,如果是,则将数量相加,否则将当前元素添加到对象中。
使用方法
将上面的代码放入一个函数中,将products
数组作为参数传递给它,然后调用这个函数即可得到统计结果。
function countKeywords(products) { const result = products.reduce((acc, cur) => { if (acc[cur.name]) { acc[cur.name] += cur.num } else { acc[cur.name] = cur.num } return acc }, {}) return Object.entries(result).map(([name, num]) => ({ name, num })) }
在上面的代码中,我们定义了一个名为countKeywords()
的函数,并将products
数组作为参数传递给它。函数返回一个新的数组,其中包含每个产品名称以及相应的数量。
测试方法
我们可以使用以下代码来测试countKeywords()
函数:
const products = [ { name: 'Apple', num: 2 }, { name: 'Orange', num: 1 }, { name: 'Banana', num: 3 }, { name: 'Apple', num: 4 } ] console.log(countKeywords(products))
在上面的代码中,我们定义了一个products
数组,并将其作为参数传递给countKeywords()
函数。然后,我们将结果打印到控制台中。
结论
在JavaScript中,我们可以使用reduce()
方法和一个对象来统计数组中相同关键词的数量。使用reduce()
方法可以简化代码,而使用对象可以提高效率。通过封装这些代码并编写一些测试用例,我们可以轻松地在JavaScript中实现这一功能。
以上就是JavaScript统计数组中相同的数量的方法总结的详细内容,更多关于JavaScript统计数组的资料请关注我们其它相关文章!
相关推荐
-
教你JavaScript利用charAt()统计出现次数最多的字符和次数
之前给大家介绍过简介JavaScript中charAt()方法的使用,今天通过本文给大家分享js统计次数最多的字符和次数的实例代码,具体内容如下所示: 判断一个字符串'aabcdobdackoppz'中出现次数最多的字符,并统计其次数 首先我们需要了解一个知识点:(如何判断对象里有该属性) // 有一个对象,来判断是否有该属性 // 写法:对象['属性名'] var o = { age : 18 , sex : '男' } if(o['sex']){ console.log('里面有该属性');
-
JavaScript 数组去重并统计重复元素出现的次数实例
1.方法一 var arr = [1, 2, 3, 1, 2, 4]; function arrayCnt(arr) { var newArr = []; for(var i = 0; i < arr.length; i++) { if(newArr.indexOf(arr[i]) == -1) { newArr.push(arr[i]) } } var newarr2 = new Array(newArr.length); for(var t = 0; t < newarr2.length;
-
js数组方法扩展实现数组统计函数
复制代码 代码如下: /*****************************************************CreateBy:joe zhou*Description:数组统计函数****************************************************/$.extend({ max: function (arr) { return cacl(arr, function (item, max) { if
-
JavaScript统计字符出现次数
本文实例为大家分享了JavaScript统计字符出现次数的具体代码,供大家参考,具体内容如下 统计用户输入字符串中各字符出现的次数. 例如:输入字符串为"abca12abbc121d",输出为:a出现3次,b出现3次,c出现2次,d出现1次,1出现3次,2出现2次. 方法一 <script> var ary ="abca12abbc121d"; var obj = {}; var i = 0; ary1 = ary.toLocaleLowerCase()
-
JS数组实现分类统计实例代码
将水果数组中同类的水果合并为一条并求出总数 var fruits = [{ name: 'apple', value: 1 }, { name: 'apple', value: 2 }, // 总计3个苹果 { name: 'banana', value: 2 }, { name: 'banana', value: 3 }]; // 总计5个香蕉 var fruitTotal = []; // 存最终数据结果 // 数据按照水果名称进行归类 var nameContainer = {}; //
-
Java编程实现统计数组中各元素出现次数的方法
本文实例讲述了Java编程实现统计数组中各元素出现次数的方法.分享给大家供大家参考,具体如下: package javatest; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class NumOfEle { public static void main(String[] ar
-
JavaScript统计字符串中每个字符出现次数完整实例
本文实例讲述了JavaScript统计字符串中每个字符出现次数的方法.分享给大家供大家参考,具体如下: 这是一个面试题,要求随便给你一个字符串,让你求出字符串中每个字符出现的次数. 先来看看运行效果截图: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
-
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
array_count_values()定义和用法 array_count_values() 函数用于统计数组中所有值出现的次数. 本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数. 语法 array_count_values(array) 参数 描述 array 必需.规定输入的数组. 例子 复制代码 代码如下: <?php $a=array("Cat","Dog","Horse","Dog"
-
Javascript循环删除数组中元素的几种方法示例
本文主要跟大家分享了关于Javascript循环删除数组中元素的几种方法,分享出来供大家参考学习,下面来看看详细的介绍: 发现问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的需求.按照常规的思路,直接一个for循环,然后在循环里面来个if判断,在判断中删除掉指定元素即可.但是实际情况往往不会像预想的那样顺利运行. 下面以一段Javascript代码为例演示这一过程. (function () { var arr = [1,2,2,3,4,5]; var len = arr.lengt
-
Javascript从数组中随机取出不同元素的两种方法
一.常规算法 第一种方法较常规,经测试有bug,数据量大以后随机几次返回的对象直接是function而不是object. 当然简单数据类型应该没有这个问题. 示例代码 /** 从数组中随机抽取数据 2016-09-09 **/ function getArrItem(arr, num) { var temp_array = new Array(); for (var index in arr) { temp_array.push(arr[index]); } var return_array =
-
Javascript获取数组中的最大值和最小值的方法汇总
比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用自带的sort()函数,下面来介绍如下几种方法,代码如下: 方法一: //最小值 Array.prototype.min = function() { var min = this[0]; var len = this.length; for (var i = 1; i < len; i++){ if (this[i] < min){ min = this[i]; } } return min; } //最大值 Array
-
JavaScript从数组中删除指定值元素的方法
本文实例讲述了JavaScript从数组中删除指定值元素的方法.分享给大家供大家参考.具体分析如下: 下面的代码使用了两种方式删除数组的元素,第一种定义一个单独的函数,第二种为Array对象定义了一个removeByValue的方法,调用非常简单 定义函数removeByValue进行元素删除 function removeByValue(arr, val) { for(var i=0; i<arr.length; i++) { if(arr[i] == val) { arr.splice(i,
-
JavaScript遍历查找数组中最大值与最小值的方法示例
本文实例讲述了JavaScript遍历查找数组中最大值与最小值的方法.分享给大家供大家参考,具体如下: <script language="javascript"> // 查找数组中最小值 function mathMin(arrs){ var min = arrs[0]; for(var i = 1, ilen = arrs.length; i < ilen; i+=1) { if(arrs[i] < min) { min = arrs[i]; } } ret
-
python 统计数组中元素出现次数并进行排序的实例
如下所示: lis = [12,34,456,12,34,66,223,12,5,66,12,23,66,12,66,5,456,12,66,34,5,34] def test1(): #进行去重 c = [] for i in lis: if i not in c: c.append(i) #进行统计,生成二维列表 b = [] for i in c: num = 0 for j in range(len(lis)): if lis[j] == i: num += 1 a = [] a.app
-
javascript学数组中的foreach方法和some方法
目录 一.foreach方法 1直接vs打开 2代码部分 二.some方法 1直接vs打开 2代码部分 3总结 在我们的日常开发中 不免会有很多需要处理数据的方法 本节主要说一说foreach和some的使用不多说把代码编辑器打开 一.foreach方法 1直接vs打开 2代码部分 var geyao = ['歌谣', '很帅', '很强'] geyao.forEach((currentValue, index, arr, thisValue) => { console.lo
随机推荐
- MySQL 字符串模式匹配 扩展正则表达式模式匹配
- CentOS系统安装Redis及Redis的PHP扩展详解
- 基于JS对象创建常用方式及原理分析
- JavaScript中的isXX系列是否继续使用的分析
- bsmain.exe 瑞星仇恨者查杀方法
- Java装饰器设计模式_动力节点Java学院整理
- asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页
- Swift开发之使用UIRefreshControl实现下拉刷新数据及uirefreshcontrol使用
- PHP实现合并discuz用户
- 如何用正则取input type="text"中的value
- J2SE中的序列化之继承
- JSP自定义标签基础知识学习
- PHP调用Linux命令权限不足问题解决方法
- 如何调优SQL Server查询
- 分享20个数据库设计的最佳实践
- js实现基于正则表达式的轻量提示插件
- jQuery插件WebUploader实现文件上传
- jquery实现tr元素的上下移动示例代码
- 如何利用matrix实现图片倒影效果
- 深入c# GDI+简单绘图的具体操作步骤(四)
其他
- linux用命令安装mysql步骤
- 易语言 用整数型传递
- python自动开机
- py自动回复qqwin
- R软件中增加一列数据
- python windows服务启动不了
- js list 转树结构
- 微信小程序upload突然不能用
- StopWatch 重复使用实例
- 行此方法用于获取执行许可,当总计未释放的许可数不超过2
- golang mux 限流中间件
- sql 把一列根据条件拆成多列
- layui 更新渲染
- mysql字符串格式化0否1是
- pycharm按回车总是换到开头不能自动缩进
- harbor代理公共镜像
- pjax 页面不发送请求
- HTML中如何将按钮的数值通过鼠标单击显示到文本框
- python 直线拟合 linefit
- pycharm2019安装教程