JavaScriptで配列をソートする
JavaScriptで配列をソートするにはsort()を使います。
var arr = ["2","11","1"];
arr.sort();
alert(arr);
デモです。
1,11,2の結果になります。
1,2,11としたい場合は比較関数を使って比較します。
<script type="text/javascript">
function test(){
var arr = ["2","11","1"];
arr.sort(func);
alert(arr);
}
// 比較関数
function func(a,b){
return a-b;
}
</script>
デモです。
比較関数をreturn b-aとすれば降順でソートされます。
配列要素が数値の場合
配列要素が数値の場合、数値は文字列として変換されてソートされます。その為辞書順となる為、意図したとおりのソートとなりません。
let arr = [1, 2, 23, 3, 4]; arr.sort(); console.log(arr); // [1, 2, 23, 3, 4]とソートされてしまう arr.sort((a, b) => a - b); // 比較関数をアロー関数で定義 console.log(arr); // [1, 2, 3, 4, 23]とソートされる
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント