Object.keys(), Object.values() - Qiita の続き。key-valueをペアでイテレートするものが欲しく、しかしこれだけのためにUndersocre.jsを(ry
使い方
var result = obj.each(function (key, value, i) {
return [key, value, i];
});
console.log(result);
// => [
// [ 'key1', 'foo', 0 ],
// [ 'key2', 'bar', 1 ]
// ]
ソースコード
Object.prototype.each = function(c){var o=this;var r=[];var i=0;for(var k in o) if(o.hasOwnProperty(k)){r.push(c.apply(o,[k,o[k],i++]))}return r};
昨日の taka84u9さんからいただいたコメント でも言及されてましたが、prototype汚染は 速度的にも副作用的にもお行儀が悪い ようなので、チーム開発ではやるべきじゃないすね。今回は僕しかメンテしないコードで、かつカリカリにチューンする必要が無いので、使ってしまいますが。