こんにちわ。 職人見習いの小森です。
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)が書いています。