我在JavaScript中有一个for-in循环,但我只对键
感兴趣for(var key in { foo:0, bar:0, blah:0 }) {
/* do sth. with the key */
}
这有效,但看起来有点愚蠢。 Firefox提供for-of循环。不幸的是,它并不适用于所有浏览器。我也在Opera 11中进行了测试,它在那里不起作用。
// only firefox
for(var key of ["foo", "bar", "blah"]) {
/* do sth. with the key */
}
有没有更智能的方法来解决每个浏览器的问题?
答案 0 :(得分:3)
尝试使用Object.keys
,只允许您获取该部分。
您可以在此处详细了解:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
(记住javascript中的所有关联数组都是对象)
请注意,只有IE> = 9
才支持答案 1 :(得分:3)
除旧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]);
};
}