連想配列の値を大きい順に出力する

連想配列の値を大きい順に出力する機会があったので対応方法をメモ。

サンプルコード

連想配列内の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];
}

注意点として、連想配列の値は数値のみの想定です。
連想配列内を大きい順に出力するデモページ
 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930