連想配列の値を大きい順に出力する機会があったので対応方法をメモ。
サンプルコード
連想配列内のkeyとvalueを値の大きい順にconsoleに出力してみます。
JavaScript
var score = {
'japanese': 90,
'mathematics': 50,
'science': 70,
'social-studies': 80,
'english': 60
}
// 元の配列を変更しないように値渡しでコピー
var temp = JSON.parse(JSON.stringify(score));
while(Object.keys(temp).length > 0) {
// 配列内で最大のkeyを格納する変数
var maxKey = '';
// 配列内で最大の値を調べる
for(key in temp) {
if(maxKey === '' || temp[key] > temp[maxKey]) {
maxKey = key;
}
}
// 配列内で最大の値を出力
console.log(maxKey, temp[maxKey]);
// 出力したkeyは配列から削除しておく
delete temp[maxKey];
}
注意点として、連想配列の値は数値のみの想定です。
連想配列内を大きい順に出力するデモページ
コメントが承認されるまで時間がかかります。