配列をソートについて
以前の記事で紹介した連想配列を含んだ配列のソートを配列のソートと一緒に紹介したいと思います。よく使う方法ですが、忘れたときにどうぞ。
ふつうの配列をソートする
Javascriptでソートする方法はArrayオブジェクトのsortメソッドを使って行います。基本的な構文は次のような形です。functionの中のreturnする値で順序が決まります。
var numArray=[10,4,2,8]; // 数字の配列
var strArray=["10","4","2","8"]; // 文字の配列
numArray.sort(function(a,b){
return (a>b);
});
strArray.sort(function(a,b){
return (a>b);
});
console.log(numArray);
console.log(strArray);
上記でソートした結果は次の通りです。小さい方から順に並びます。数字の文字列はそのまま並び替えられます。一方、文字の配列は注意が必要です。並べ替えは先頭の文字から順に評価されるため、先頭が”1″の10が最初にきます。数字を文字列で入れている場合は注意が必要です。
[2, 4, 8, 10] // 数字の配列のソート結果
["10", "2", "4", "8"] // 文字列のソート結果
そういう場合は次のよう値の差を取ることで数字に変換されて小さい順に並べることができます。
var strArray=["10","4","2","8"]; // 文字の配列
strArray.sort(function(a,b){
return (a-b);
});
console.log(strArray);
ソート結果は次の通りです。
["2", "4", "8", "10"] // 文字列のソート結果
連想配列のソートをする
連想配列が要素の配列の場合は、”.”を使って連想配列の要素を取り出しすことで配列と同じようにソートすることができます。下記の例では、キーが”key0″の要素の値で小さい順にソートされます。
var renArray=[
{"key0":"10","key1":"2"},
{"key0":"4","key1":"10"},
{"key0":"2","key1":"1"},
{"key0":"8","key1":"5"}
];
renArray.sort(function(a,b){
return (a.key0-b.key0);
});
まとめ
Javascriptではメソッドを使うことで簡単にソートできます。連想配列はよく使うのでこのソートもよく使います。知っておくと便利だと思います。
コメント