あれどうやるんだ?ってなったのでメモ。
ソース
[ { 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ってマイナスにしたら降順になるんだっけ?どっちだっけ?っていつも迷う感。
おわり
コメント