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)
还没有任何评论哟~
