やりたいこと
以下のようなオブジェクトがあったとします。
今回は各メンバーをscoreの高い順に並べ替えたいと思います。
let member = {
0 : {name : 'タナカ', score : 70},
1 : {name : 'ヤマダ', score : 80},
2 : {name : 'スズキ', score : 100},
3 : {name : 'サトウ', score : 60},
4 : {name : 'ヨシダ', score : 75}
}
実装
以下のようにすることで並べ替えることができます。
let result = Object.keys(member)
.map(function (key) {
return member[key]
})
.sort(function (a, b) {
return b.score < a.score ? -1 : 1
})
解説すると、以下の流れで処理を行っています。
① .mapメソッドでオブジェクトのキー配列を取得
② .sortメソッドで並び替え
昇順にしたいときは最後の部分を逆にしてあげればOKです。
let result = Object.keys(member)
.map(function (key) {
return member[key]
})
.sort(function (a, b) {
return a.score < b.score ? -1 : 1
})
是非参考にしてみてください。