Dar*_*htA 3 javascript foreach for-loop
我知道在C#中你使用这样的foreach:foreach string str in array1 {console.writeline(str);}
是"for each ... in"在JavaScript中也是这样使用的吗?
Afaik只支持Firefox for each...in.它不是任何标准的一部分,大多数工具(如JSLint)在遇到错误时都会抛出错误.
区别在于for...in在对象的键上for each...in循环,而在值上循环.
所以推荐的方法是不使用 for each和做
for (var key in obj) {
console.log(obj[key]);
}
Run Code Online (Sandbox Code Playgroud)
代替.
更新:我不能说它与C#有什么关系.但是关于数组:永远不要用于for...in遍历数组(这里是黄色框):
尽管使用它作为迭代数组的方法可能很诱人,但这是一个坏主意.
for...in除了数组元素之外,该语句还会迭代用户定义的属性,因此如果您修改数组的非整数或非正属性(例如,通过向其添加"foo"属性,或者甚至通过添加方法或属性Array.prototype) ,for...in除了数字索引之外,该语句还将返回用户定义属性的名称.
for改为使用普通循环:
for(var i = 0, l = arr.length; i<l; i++)
Run Code Online (Sandbox Code Playgroud)
或更多幻想:
for(var i = arr.length; i--;)
Run Code Online (Sandbox Code Playgroud)