JavaScriptでオブジェクトの配列をソートするには、array.sort() メソッドを使う。
以下のオブジェクトを考える。
// JavaScript var tag = {"tag_key":"125_1364971147327", "tag_memo":"2013/04/03", "tag_name":"Cafe"}; //// オブジェクトの要素には、tag.tag_key や tag['tag_key'] でアクセスする
これと同じ形式のオブジェクトが配列になっているとする。
// JavaScript var tags[0] = {"tag_key":"125_1364971147327", "tag_memo":"2013/04/03", "tag_name":"Cafe"}; var tags[1] = {"tag_key":"290_1364960957964", "tag_memo":"2013/04/03", "tag_name":"買い物"}; var tags[2] = ...
このオブジェクトの配列に対し、あるプロパティ(例えばtag_name)でソートしたいしたいときは、sort()を使う。このメソッドは引数に関数を指定することができるので、以下のようにすることで、ソートが実行できる。
// JavaScript tags.sort(function(a, b) { return ( a.tag_name > b.tag_name ? 1 : -1); });
この方法では配列そのものが変更されてしまうので、元の配列を残したいときはconcat()メソッドを使ってコピーしておく。
// JavaScript var tags_view = tags.concat(); // var tags_view = tags; では参照がコピーされるだけなので意図した「コピー」にはならない。 tags_view.sort(function(a, b) { return ( a.tag_name > b.tag_name ? 1 : -1); });
ピンバック: JavaScriptでオブジェクトの配列を filter() を使ってフィルタリングする | Try Lifelog