找出数组中重复元素,并按重复的次数由少到多排序 es6

最近在面试的时候出现的一个考题,当时做出来了,回来验证后发现有点小问题,现在把这个记录下来供自己以后参考。自己写的,用的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]

猜你喜欢

转载自blog.csdn.net/ringlot/article/details/116997071