ハッシュ(連想配列)からあるキーを持つ値を取得

ハッシュ(連想配列)からあるキーを持つ値を取得するには、次のような方法で実装できます。

関数定義

JavaScript

/**
 * ハッシュ(連想配列)からあるキーを持つ値を取得
 * @param {string} searchKey 検索するキー
 * @param {object} hash 検索対象のハッシュ(連想配列)
 * @return {any[]} 見つかった値を配列で返す
 */
var getValueWithKey = function(searchKey, hash) {
	var result = [];

	if (!searchKey || typeof searchKey !== 'string') return [];
	if (!hash || typeof hash !== 'object') return [];

	if (hash[searchKey]) {
		result.push(hash[searchKey]);
	} else {
		for (var i = 0, len = hash.length; i < len; i++) {
			if (hash[i] && hash[i][searchKey]) {
				result.push(hash[i][searchKey]);
			}
		}
	}

	return result;
};

使い方

引数

引数名 説明
第一引数
必須
searchKey string 検索するキー
第二引数
必須
hash object 検索対象のハッシュ(連想配列)

戻り値

見つかった値を配列で返します。

JavaScript

var hash = [
	{
		foo : 'a',
		bar : '1'
	},
	{
		foo : 'b',
		bar : '2'
	},
	{
		foo : 'c',
		bar : '3'
	},
	{
		foo : 'd',
		bar : '4'
	},
	{
		foo : 'e',
		bar : '5'
	}
];

var values = getValueWithKey('bar', hash);

alert(values); // ['11', '22', '33', '44', '55']

JavaScript逆引きリファレンス一覧へ戻る