JavaScript:オブジェクトを持つ配列のソート

基本構文は次のようになっている。

// アロー関数
sort((a, b) => { /* … */ } )

ソート方法をアロー関数内に書き、昇順降順は次のように、アロー関数内の比較結果によって変わる。

a, b の返値 ソート順
> 0 a を b の後に並べる(昇順)
< 0 a を b の前に並べる(降順)
=== 0 a と b の元の順序を維持する

試しに書いてみた。

const fruits = [
  { id: 1, name: "Banana",},
  { id: 2, name: "Grape", },
  { id: 3, name: "Apple", },
];

// 昇順
fruits.sort((a, b) => {
  return a.name > b.name ? 1 : -1;
});
// => { id: 3, name: 'Apple' }
// => { id: 1, name: 'Banana' }
// => { id: 2, name: 'Grape' }

// 降順
fruits.sort((a, b) => {
  return a.name < b.name ? 1 : -1;
});
// => { id: 2, name: 'Grape' }
// => { id: 1, name: 'Banana' }
// => { id: 3, name: 'Apple' }