Rumah >hujung hadapan web >tutorial js >如何找出数组中重复次数最多的元素

如何找出数组中重复次数最多的元素

一个新手
一个新手asal
2017-09-27 10:35:436548semak imbas

以此开始我博客生涯

-----------------------------------------------------警醒自己

题目:数组中重复次数最多的元素

废话不多说,直接上代码-------

第一种方法:

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 &#39;key: &#39;+ obj.key+ &#39; len: &#39;+obj.max;}
var arr = [1,2,3,4,2,1,4,2,3,5];
arr.getMost();

第三种方法有个bug,如果最多重复次数的元素有多个,则返回最后一个元素。

Atas ialah kandungan terperinci 如何找出数组中重复次数最多的元素. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn