最近在面试的时候出现的一个考题,当时做出来了,回来验证后发现有点小问题,现在把这个记录下来供自己以后参考。自己写的,用的es6的写法。
repeat(arr) {
let e = []
arr.forEach(item => {
let num = arr.filter(n => n === item).length
if (num>1&&!e.find(m => m.name === item)){
e.push({
name: item,
size: num
})
}
});
e.sort(function(a,b){
return a.size-b.size
})
let res = e.map(item => {
return item.name
})
return res
}
let res = this.repeat([1,4,4,4,2,3,3,5,5,3])
console.log(res)
结果就是:[5,4,3]