javascript - 如何获取一个数组中的相同元素的个数
问题描述
就是有一个数组,例如var numArr = ['A', 'C', 'B', 'A', 'C', 'D', 'A', 'C'],如何筛选出相同的元素,还有相同元素的个数
问题解答
回答1:简单的循环不就出来了
回答2:['A', 'C', 'B', 'A', 'C', 'D', 'A', 'C','B'].reduce((r,v)=>{ r[0].has(v)?r[1][v]?r[1][v]++:r[1][v]=2:r[0].add(v); return r;},[new Set,{}])[1]// {A: 3, C: 3, B: 2}
是这种效果么?选出重复(出现次数大于等于2)的元素并统计每个重复元素出现的次数?
回答3:function checkArray(para, arr) { let processArr = arr.filter(function(value) {return value == para; }); return processArr.length; // 这里返回数组长度或者相应处理}console.log(checkArray(1, numArr));回答4:
可以用 Map
['1', '2', 2, 0, -0, NaN, NaN, [], [], {}, {}, undefined, , , null].reduce((m, k) => { return m.set(k, (m.get(k) || 0) + 1);}, new Map());
遵循以下规则:
NaN = NaN
+0 = -0
'1' != 1
{} != {}
[] != []
undefined != null
空元素不计

var obj={},arr=['A', 'C', 'B', 'A', 'C', 'D', 'A', 'C','B']//forfor(var i=0,len=arr.length;i<len;i++){ if(obj[arr[i]]){obj[arr[i]]++ } else{ obj[arr[i]]=1 }}//forEacharr.forEach(function(item,i){obj[arr[i]]?obj[arr[i]]++:obj[arr[i]]=1})
相关文章:
1. Apache 已经把网站根目录的改为allow from all了,但是服务器还是不能访问?2. gulp-ruby-sass编译出来的文件有错3. 使用 CSS3 的 Media Query 浏览器会加载其他不同分辨率的 css 文件么4. “Webdrivers”可执行文件可能具有错误的权限请参阅https://sites.google.com/a/chromium.org/chromedriver/home5. php-_server-php_self - nginx $_SERVER[’PHP_SELF’] 得到重复路径是什么原因?6. 前端 - 类到底该如何去命名 .newsList 这种的命名难道真的不是过度语义化吗?~7. 数据挖掘 - 如何用python实现《多社交网络的影响力最大化问题分析》中的算法?8. node.js通过module.exprots返回的是promise对象而非data?9. html - 开发android的调取我web页面 他之前用的是收费的浏览器包 显示是全的换了免费的浏览器包后 显示就不全 是什么原因啊10. javascript - 给js写的盒子添加css样式,css样式没起作用。

网公网安备