配列内の重複要素を検索し、繰り返し回数の最小値から最大値までの順に並べ替えます 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