数组去重和排序

给定一个乱序的数组,数组大小不超过100.删除所有的重复元素,使得每个元素只出现一次,

并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序。

输入 1,3,3,3,2,4,4,4,5

输出 3,4,1,2,5

let arr = [1,3,3,3,2,4,4,4,5]
let objArr = []
for(let [idx,i] of arr.entries()) {
    let hasItem = false
    for (let o of objArr) {
        if (o.value === i) {
            hasItem = true
            o.index++
        }
    }
    if (!hasItem) {
        objArr.push({
            value: i,
            index: 1,
            firstIndex: idx
        })
    }
}
objArr.sort((a,b) => {
    return b.index - a.index
})
let resultArr = []
for(let i of objArr){
    resultArr.push(i.value);
}
console.log(resultArr.join(','));
机试题 文章被收录于专栏

某机试题,网上很少用js写的答案只有自己写了

全部评论

相关推荐

评论
点赞
1
分享
牛客网
牛客企业服务