2013-07-25 78 views
1

我得到了換在JavaScript中循環,但我只是在按鍵替代計劃「爲」 -loop

for(var key in { foo:0, bar:0, blah:0 }) { 
    /* do sth. with the key */ 

} 

這個工作感興趣,但它看起來有點愚蠢。 Firefox提供了一個for-for循環。不幸的是,它不適用於所有瀏覽器。我也在Opera 11中測試過它,但它在那裏不起作用。

// only firefox 
for(var key of ["foo", "bar", "blah"]) { 
    /* do sth. with the key */ 

} 

有沒有更聰明的方法來解決這個每個瀏覽器?

回答

2

在除舊IE什麼(IE8及以上),你可以這樣做:

["foo","bar","blah"].forEach(function(key) { 
    // do something 
}); 

在IE的一些版本中添加支持(我認爲IE7和8允許這樣做,IE6不):

if(![].forEach) { 
    Array.prototype.forEach = function(callback) { 
     for(var i=0, l=this.length; i<l; i++) callback(this[i]); 
    }; 
} 
+0

+1我想你可以在數組上創建它,如果需要添加IE 8支持:-) – TGH