##学ぼうと思ったきっかけ
高校数学でデータの分析の課題で、表にあるデータを小さいものから順に並び替えて、そこから計算をしていくのだけれど、いちいち並び替えるのは面倒だし、ミスも連発するから、コードかけばいいやと思ったから!
##sort関数を使う
sort関数とはなんぞや?というと、配列の中の要素を一度文字列にして、文字コード順に並び替える!
それだけ!
だが、sort関数は引数に関数を指定できるので、渡す関数で並び替えのルール(規定)をつくることができるのだ!
index.js
const array = [2,1,5,4,77,123];
console.log(array.sort());
//[1,123,2,4,5,77]
このようになる!
きちんとした昇順ではない!
そこで、比較関数を引数に渡せばいい!!
比較関数(引数に渡す関数)とは、ソートするルールを決めるものぐらいの認識でいい!
index.js
const array = [2,1,5,4,77,123];
function compare(a,b){
return a - b;
}
console.log(array.sort(compare));
//[1,2,4,5,77,123]
#####二つの配列の要素の差で考える
・戻り値が正なら、引数1を引数2の後ろに並び替え
・戻り値が負なら、引数1を引数2の前に並び替え
・戻り値が0ならば並び替えない
今回は昇順を取り上げたが、降順なら引数に渡す値を
index.js
const array = [2,1,5,4,77,123];
function compare(a,b){
return b - a;
//bとaを逆にすると良い
}
console.log(array.sort(compare));
もっときれいな書き方やまちがいがあったらぜひぜひ教えてください!!