面試題:求數組中重復次數最多的元素並求出個數


直接上代碼

<script type="text/javascript">
	let ARR = ['b','a','cd','dd','d','a','c','e','c','b','a','c','b','c','b']
	// 先令最多元素為第一個元素
	let max = ARR[0]
	// 最多元素個數
	let num = 0
	// 輔助數組,存儲最多數量重復元素
	let eq = []
	let arr = ARR.reduce((newArr,item)=>{
		if(item in newArr){
			newArr[item] += 1
		}else{
			newArr[item] = 1
		}
		return newArr
	},{})
	for(let item in arr){
		if(num < arr[item]){
			num = arr[item]
			max = item
			eq.length = 0
		}else if(num === arr[item]){
			eq.push(item)
		}
	}
	if(eq.length>0){
		eq.forEach(item=>{
			max += ','+item
		})
	}
	// // forEach方法 需要改進,得不到最多數量相同的兩個元素
	// let newArr = {}
	// let max = ''
	// let num = 1
	// ARR.forEach((item)=>{
	// 	if(item in newArr){
	// 		newArr[item] += 1
	// 	}else{
	// 		newArr[item] = 1
	// 	}
	// 	if(newArr[item]>num){
	// 		num = newArr[item]
	// 		max = item
	// 	}
	// })
	console.log(arr,'出現最多次數的元素是:'+max+',它出現的次數是:'+num)
</script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM