数をソート
数字をソートする場合
var arr = [3, 10, 1]; arr.sort(function(a, b) { return a - b; //b - aにすると、10,3,1 }); alert(arr); //1,3,10
こんな感じに書けば、数字をソートできるのは知ってました。
しかし、文字の長さ順にするのに
var arr = ['aa', 'aaa', 'a']; arr.sort(function(a, b) { return a.length - b.length; }); alert(arr); //a,aa,aaa
これは知らなかった。
数字をソートしているのだから、当たり前のような気はするけど
教えて貰わないと気が付かないなぁ。
ならば、zの数が少ない順にするには
var arr = ['az', 'bzzz', 'czz', 'dz', 'e']; arr.sort(function(a, b) { return (a.match(/z/g) || '').length - (b.match(/z/g) || '').length; }); alert(arr); //e, az,dz,czz,bzzz
これでOKなわけだ。
なるほど、これは凄いな。
とにかく、数に直せばいいのか。
偶然、「おとなり日記」に表示されたURL覗いて知ったんだけど
基本的な事みたいねw