at_yasu's blog

ロード的なことを

map関数

Javascriptでは何と云うのか解らないけど、(ハッシュ|辞書)型のを一次元の配列にする関数が見当たらなかったので作ってみた。

使い方はこんな感じ。

$('system_emphasis_list').innerHTML = (map((function(k,v){
	return "<li>" + k + ":" + v + "</li>"
}), json['error'])).join("")


実装は至って簡単で、こんな感じ。

function map(f, hash) {
	var buff = new Array()
	for (var k in hash) {
		if (typeof(k) != "undefined" && typeof(hash[k]) != "undefined" && !k.prototype && !hash[k].prototype)
			buff.push(f(k, hash[k]))
	}
	return buff
}


自分でも思うけど、凶悪な事になってるなぁ。mapを使うときの()の数とか、!k.prototypeとか・・・