JavaScriptで配列をソートする
JavaScriptで配列をソートするにはsort()を使います。
1 2 3 |
var arr = ["2","11","1"]; arr.sort(); alert(arr); |
デモです。
1,11,2の結果になります。
1,2,11としたい場合は比較関数を使って比較します。
1 2 3 4 5 6 7 8 9 10 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の大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^