如何找出数组中重复次数最多的元素
程序员文章站
2022-04-06 20:02:07
...
以此开始我博客生涯
-----------------------------------------------------警醒自己
题目:数组中重复次数最多的元素
废话不多说,直接上代码-------
第一种方法:
function getMost(arr){ var hash = {}; var m = 0; var trueEl; var el; for(var i = 0,len = arr.length; i < len; i++ ) { el = arr[i]; hash[el] === undefined ? hash[el] = 1 : (hash[el] ++); if(hash[el] >= m){ m = hash[el]; trueEl = el; } } return trueEl; };
第二种方法:
function getMost(arr) { if (!arr.length) return if (arr.length === 1) return 1 var res = {} // 遍历数组 for (var i=0,l=arr.length;i<l;i++) { if (!res[arr[i]]) { res[arr[i]] = 1; } else { res[arr[i]]++; } } // 遍历 res var keys = Object.keys(res); console.log(keys); var maxNum = 0, maxEle; for (var i=0,l = keys.length;i<l;i++) { if (res[keys[i]] > maxNum) { maxNum = res[keys[i]]; maxEle = keys[i]; } return maxEle; }
第三种方法:
Array.prototype.getMost = function(){ var obj = this.reduce((p,n) =>(p[n]++ ||(p[n] = 1),(p.max=p.max>=p[n]?p.max:p[n]), (p.key=p.max>p[n]?p.key:n), p), {}); return 'key: '+ obj.key+ ' len: '+obj.max;} var arr = [1,2,3,4,2,1,4,2,3,5]; arr.getMost();
第三种方法有个bug,如果最多重复次数的元素有多个,则返回最后一个元素。
以上就是如何找出数组中重复次数最多的元素的详细内容,更多请关注其它相关文章!
推荐阅读
-
Java编程实现统计数组中各元素出现次数的方法
-
array_unique() - 去除数组中重复的元素值
-
js根据需要计算数组中重复出现某个元素的个数
-
解析PHP函数array_flip()在重复数组元素删除中的作用
-
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
-
php从数组中随机选择若干不重复元素的方法
-
php数组函数序列之array_unique() - 去除数组中重复的元素值
-
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
-
【python cookbook】找出序列中出现次数最多的元素
-
PHP获取数组中重复最多的元素的实现方法