あれどうやるんだ?ってなったのでメモ。
ソース
[
{
age: 40,
money: 300,
},
{
age: 80,
money: 4000,
},
{
age: 10,
money: 1,
},
{
age: 100,
money: 500,
},
{
age: 40,
money: 3,
},
{
age: 40,
money: 3000,
},
].sort((a, b) => {
if (a.age === b.age) {
return b.money - a.money;
}
return b.age - a.age;
});
実行結果

ソースの意図としては
- 「年齢」と「どれだけお金を持っているか」を表すオブジェクトの配列がある
- この配列を「年齢が高い順」、年齢が同じ場合は「お金を持っている順」に並び替える
みたいな感じです。
並び替えてる部分は以下です。
].sort((a, b) => {
if (a.age === b.age) {
return b.money - a.money;
}
return b.age - a.age;
年齢が同じ場合は(a.age === b.age)、年齢で比較する(b.money – a.money)としているのがポイントです。
sortってマイナスにしたら降順になるんだっけ?どっちだっけ?っていつも迷う感。
おわり
コメント