为了账号安全,请及时绑定邮箱和手机立即绑定

在想一个js算法,如何算出数组所有项的出现次数

在想一个js算法,如何算出数组所有项的出现次数

手掌心 2019-01-02 15:23:18
比如 var arr = [1, 2, 3, 1, 5, 8, 2, 9, 9, 2, 2, 2, 3]; 如何才能能够算出,数组中有几种值,以及某种值出现的次数呢? 比如这个题答案就是:   数组中出现的元素值为:1, 2, 3, 5, 8, 9这几个。 其中1出现次数为2次,2出现次数为5次,3出现次数为2次,5出现次数为1次,8出现次数为1次,9出现次数为2次。 各位大佬有什么思路吗? 如果您有思路,可以给小弟来个评论,实现方法多多益善~~~
查看完整描述

1 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

第一种 obj 记录出现次数

var obj = {};for(var i=0;i<arr.length;i++)
 obj[arr[i]] = !obj[arr[i]]?1:++obj[arr[i]];

第二种 indexOf

var cache=[],obj={}; for(var i=0;i<arr.length;i++)
   cache.indexOf(arr[i])==-1?(obj[arr[i]]=1,cache.push(arr[i])):obj[arr[i]]++

第三种 正则查找

var obj = {},idx=[];for(var i=0,str = arr.join(',');i<arr.length;i++)
  !obj[arr[i]]&&(patch(arr[i],str),obj[arr[i]]=1);function patch(re,s){
   re=new RegExp(re,"ig");
   idx.push(s.match(re).length);
}


查看完整回答
反对 回复 2019-01-02
  • 1 回答
  • 0 关注
  • 678 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信