こんにちわ。 職人見習いの小森です。

JavaScriptで動的に数が変わる連想配列をソートする必要があり備忘録的な意味合いも含めてご紹介します。

この処理を作成した時、料金と名前の配列を別々に持っていたのでpushして連想配列にまとめています。
なお、今回はサンプルなので固定数の配列をpushしてますが、pushする回数により動的に数が変わってきます。

var itemArray = new Array("A","B","C","D");
var priceArray = new Array(400,200,300,100);
var sortArray = new Array();
for( var i = 0 ; i      sortArray.push({item:itemArray[i],price:priceArray[i]});
}

無名関数で比較処理を記述

sortArray.sort( 
  function(a,b) {
    var aPrice = a["price"];
    var bPrice = b["price"];
    if( Number(aPrice)     if( Number(aPrice) > Number(bPrice) ) return 1;
    return 0;
    }
);

料金順にソートされるので表示すると以下のようになります。

100,200,300,400
"D","B","C","A"

※この記事は、なかの人(spitz8008)が書いています。