【JavaScript】sort()で連想配列をソートする

JavaScript Web制作

sort()は、配列の要素を並び替えるメソッドです。
引数を指定しない場合、配列内の各要素を文字列に変換して昇順で並び替えます。
また、並び替えた新しい配列を返すのではなく対象の配列そのものを変更します。

ソートの基準が1つ

pointでソートする場合

const arr = [
   {name: 'A', point: 80},
   {name: 'B', point: 70},
   {name: 'C', point: 80},
   {name: 'D', point: 90}
];

arr.sort((a, b) =>
  a.point > b.point ? 1 : -1;  
);

ソートの基準が複数

pointでソートするが、同点の場合はnameでソートしたい場合

const arr = [
   {name: 'A', point: 80},
   {name: 'B', point: 70},
   {name: 'C', point: 80},
   {name: 'D', point: 90}
];

arr.sort((a,b) => {
  if (a.point < b.point) return -1
  if (a.point > b.point) return 1
  if (a.name < b.name) return -1
  if (a.name > b.name) return 1
  return 0
})

昇順・降順を逆にしたい場合は不等号を逆にしましょう。

タイトルとURLをコピーしました