javascript – 对于数组中的循环读取’删除’?

前端之家收集整理的这篇文章主要介绍了javascript – 对于数组中的循环读取’删除’?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Problems with JavaScript “for in” loop3个
我刚刚经历了最奇怪的事情,这是我实际使用的代码
for (iter in data.List) {
    console.log(iter);
}

正如您所料,日志应该给出每行的数量(0,1,2 ……),而不是它给我这个:

0
1
2
remove

知道我的数组只有3行

有没人有人想过这个?

解决方法

基本上,问题是你使用for in循环遍历你的数组,这不是通过数组的iteratung.它的目的是迭代对象的所有属性,显然在你的数组上有一个名为remove的属性.

有关为什么在数组时出错的更多详细信息,请参阅Why is using “for…in” with array iteration a bad idea?.

作为解决方案,我建议使用索引for循环.这种类型的循环不关心属性,因此你很好.所以它基本上归结为非常经典:

for (var i = 0; i < data.List; i++) {
  console.log(data.List[i]);
}

顺便说一下:除非是构造函数,否则不应该在JavaScript中使用大写字母.因此它应该是data.list.

PS:关于数组和(错误)使用它们的一个很好的阅读,阅读Fun with JavaScript Arrays,一个非常好的阅读.

猜你在找的JavaScript相关文章