JSのオブジェクトをソートする(chrome対応)

0

    JavaScriptの配列にはもともとソート機能がついているが、デフォルトだと昇順にしか並ばない。また、オブジェクトの配列の場合はそのまま使えない。

     

    なので、今までは

     array.sort(function (a,b){
               return a.prop - b.prop;
            });

    のようにしてたが、a.propとb.propが同じ値のとき、chromeで正しくソートされない。これは、returnで0が返されたときの解釈がブラウザごとに異なるため。

     

    そこで「もとのオブジェクトに配列用の連番を付与し、同じ値のときはその連番でソートする」といった代替処置が必要。加えて、文字列のソートができると便利なので、関数を整理する。以下サンプル。

     

    ソート関数サンプル http://jsdo.it/design_peke/swqj

     

    ちなみに、普通の配列を降順にするには、余計な関数を使わず

    array.sort();

    array.reverse();

    とやってしまうのが無難。せこいけど。

     



    selected entries

    categories

    archives

    recent comment

    recommend

    profile

    BOOKS

    links

    search this site.

    others