找出数组中元素出现最多的元素js

给一个数组,找出这个数组中那一个元素出现次数最多,且说明最多出现几次,用js写出来,请问该这么写?麻烦知道的给解答下,谢谢

慕容708150
浏览 1097回答 1
1回答

慕仙森

hash啊 说个思路,定义一个对象obj,遍历数组, 对象的键为数组的元素,值为出现的次数。然后遍历这个对象,找出值为最大的那个。function&nbsp;findMost(arr)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!arr.length)&nbsp;return &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(arr.length&nbsp;===&nbsp;1)&nbsp;return&nbsp;1 &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;res&nbsp;=&nbsp;{}&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;遍历数组 &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i=0,l=arr.length;i<l;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!res[arr[i]])&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res[arr[i]]&nbsp;=&nbsp;1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res[arr[i]]++ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;遍历&nbsp;res &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;keys&nbsp;=&nbsp;Object.keys(res)&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;maxNum&nbsp;=&nbsp;0,&nbsp;maxEle&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i=0,l&nbsp;=&nbsp;keys.length;i<l;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(res[keys[i]]&nbsp;>&nbsp;maxNum)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxNum&nbsp;=&nbsp;res[keys[i]] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxEle&nbsp;=&nbsp;keys[i] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;maxNum }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript