for each ... in loop のMDNページによると、この構成は非推奨です。まったく同じことをする代替手段はありますか? for ... of loop は、非整数(自身の列挙可能な)プロパティを反復処理しません。代替手段がない場合、なぜ彼らはそれを非推奨にしたのですか?
まったく同じことをする代替手段はありますか?
for ... in
ループでは、コードのブロックで最初にfoo[propertyname]
を変数にコピーします。
オブジェクトobj
のすべてのプロパティを反復処理するには、次のようにします。
for (var key in obj) {
console.log(key, obj[key]);
}
継承されたプロパティを避けたい場合は、次のようにします。
for (var key in obj) {
if (!obj.hasOwnProperty(key)) continue;
console.log(key, obj[key]);
}
新しいECMAScript 5th Edition関数を利用できます:
Object.keys(obj).forEach(function (key) {
console.log(key, obj[key]);
});