#プログラミング勉強日記
2021年1月30日
sortメソッドの使い方を簡単にまとめる。
#sortメソッドとは
JavaScriptで並び替えを行うメソッド。具体的には文字列や数字の昇順・降順で対象の値を並び替えることができる。ただ、sortメソッドは、元の配列データを変更してしまうメソッドでもあるので、注意が必要。
使い方
配列名.sort();
#文字列をソートする
文字列をソートするためには、ソートしたい文字列が格納されている配列を対象にsortメソッドを呼び出す。
let str = ["baseball", "soccer", "tennis", "swimming", "basketball"];
str.sort();
console.log(str);
実行結果
["baseball", "basketball", "soccer", "swimming", "tennis"]
#数字をソートする
数値をソートするためには、引数に比較関数を指定する。比較関数は2つの値を比較しながら1つずつ順番を変えてく方法である。
昇順に並び替え
// 比較関数
function sortNumber(a, b) {
return a - b;
}
let num = [5, 3, 10, 6, 72, 27];
num.sort(sortNumber);
実行結果
[3, 5, 6, 10, 27, 72]
降順に並び替え
// 比較関数
function sortNumber(a, b) {
return b - a;
}
let num = [5, 3, 10, 6, 72, 27];
num.sort(sortNumber);
console.log(num);
実行結果
[72, 27, 10, 6, 5, 3]
#sortメソッドの注意点
記事の冒頭でsortメソッドは元の配列を変更してしまう破壊的メソッドであると書いた。元の配列を残しておきたい場合には、sliceメソッドで配列のコピーを作成しておくといい。
let str = ["baseball", "soccer", "tennis", "swimming", "basketball"];
let str_copy = str.slice();
str.sort();
console.log(str);
console.log(str_copy);
実行結果
["baseball", "basketball", "soccer", "swimming", "tennis"]
["baseball", "soccer", "tennis", "swimming", "basketball"]