JavaScriptで配列の並び替え(ソート)をする方法です。
オブジェクトの配列も並び替えることができます。
配列を並び替える
配列を並び替えるにはsort()を使用します。
昇順での並び替え
昇順で並び替えるには配列にsort()を付けるだけです。
const array = [
3,1,4,7,2,9,5,8,6
];
array.sort();
console.log(array);
// OUTPUT: [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
降順での並び替え
降順で並び替えるにはsort()に条件式を付ける必要があります。
const array = [
3,1,4,7,2,9,5,8,6
];
array.sort((a,b) => a < b);
console.log(array);
// OUTPUT: [ 9, 8, 7, 6, 5, 4, 3, 2, 1 ]
オブジェクトの配列の並び替え
sort()を使用してオブジェクトの配列も並び替えることができます。
下記はオブジェクト内のidを昇順で並び替えます。
const objArray = [
{ id: 4, str: 'a' },
{ id: 2, str: 'c' },
{ id: 1, str: 'd' },
{ id: 3, str: 'b' },
];
objArray.sort((a,b) => a.id > b.id);
console.log(objArray);
// OUTPUT:
// [ { id: 1, str: 'd' },
// { id: 2, str: 'c' },
// { id: 3, str: 'b' },
// { id: 4, str: 'a' } ]
次にオブジェクト内のstrをアルファベットの昇順で並び替えます。
const objArray = [
{ id: 4, str: 'a' },
{ id: 2, str: 'c' },
{ id: 1, str: 'd' },
{ id: 3, str: 'b' },
];
objArray.sort((a,b) => a.str > b.str);
console.log(objArray);
// OUTPUT:
// [ { id: 4, str: 'a' },
// { id: 3, str: 'b' },
// { id: 2, str: 'c' },
// { id: 1, str: 'd' } ]
不等号を逆にすれば降順に並び替えることもできます。