Advertisement

js算法-数组中的重复元素按降序排列

阅读量:

算法题:提供一个数组,要求根据数组中元素的重复次数由高到低进行排序输出(若重复次数相同,则按照首次出现的顺序排列在前)
示例:

数组:[5,19,19,12,19,19,15,5,12,5,12,12,15]
结果:[19,12,5,15]
分析:在原始数组中,数值为5的元素出现了3次,数值为19的出现了4次,数值为12的出现了4次,数值为15的出现了2次。当重复次数相等时,依据首次出现的位置决定先后顺序,因此数值为19的排在数值为12之前,最终输出结果为[ 19, 12, 5, 15 ]

近期遇到了一个算法题目:发现网络上尚未存在对应的js实现方式。

1.解法一:对象存储值和数量

复制代码
    var foo = function (course) {
    	let mp = {}
    	for (var i of course) {
    		i = i.toString()
    		if (mp.hasOwnProperty(i)) {
    			mp[i] += 1
    		} else {
    			mp[i] = 1
    		}
    	}
    	return Object.keys(mp).sort((a, b) => mp[a] - mp[b]).reverse().m

全部评论 (0)

还没有任何评论哟~