警告:
问题仍然适用于循环的for…不要使用for…in来迭代数组,而是使用它来迭代
对象的属性。也就是说,这个
我知道JavaScript语法中的基本for是这样的:
for (var obj in myArray) {
// ...
}
但是我如何得到循环计数器/索引?
我知道我可能会这样做:
var i = 0;
for (var obj in myArray) {
alert(i)
i++
}
或者甚至是美好的老故事:
for (var i = 0; i < myArray.length; i++) {
var obj = myArray[i]
alert(i)
}
但我宁愿使用更简单的for-in循环。我认为它们看起来更好,更有意义。
有没有更简单或更优雅的方式?
在Python中,这很简单:
for i, obj in enumerate(myArray):
print i
// this loop is used in advanced javascript
//For Example I have an array:
let array = [1,2,3,4,5];
1) for(let key in array){
console.log(key);//this shows index of array {Result: 0,1,2,3,4}
console.log(array[key]);//this show values of array {Result: 1,2,3,4,5}
}
//Hopefully, You will quickly understand;
正如其他人所说,不应该使用for..in迭代数组。
for ( var i = 0, len = myArray.length; i < len; i++ ) { ... }
如果你想要更简洁的语法,你可以使用forEach:
myArray.forEach( function ( val, i ) { ... } );
如果要使用此方法,请确保包含ES5 shim以添加对旧浏览器的支持。