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