在javascript中迭代数组的内容

时间:2013-12-13 17:34:20

标签: javascript

如果我有一个数组:

var a = [56, 99, 2];

迭代我所知道的所有内容的唯一方法是:

for (var i = 0; i < a.length; ++i) {
    // do something with a[i]
}

如果我这样做:

for (var i in a) {
    // do something with a[i]
}

它也会得到“包含”和“空”功能,所以我不希望这样。

有没有比++i方法更好的方法?

4 个答案:

答案 0 :(得分:1)

大多数现代浏览器支持forEach(不了解IE; - ))

[56, 99, 2].forEach(function(element, index, array) {
    console.log(element);
});

如果您应用以下检查,实际上可以使用

for .. in in(尽管不是真的推荐):

  • array.hasOwnProperty(key) == true
  • Key是一个整数。

答案 1 :(得分:0)

答案 2 :(得分:0)

如果要在IE8浏览器中运行,您需要小心使用上面建议的forEach。见For-each over an array in JavaScript?

答案 3 :(得分:0)

尝试:

for (var i of a)
{
   //Do something
}

for..of循环实际上只是EcmaScript 6提案的一部分,实际上是实验性的,所以浏览器支持现在是有限的(Firefox支持它,但你可能遇到其他问题)浏览器)。所以你可能想要使用array.foreach()方法,正如其他人所建议的那样。您可以阅读更多here

仍然,恕我直言,知道一种技术是很好的,它将(很快)成为在js中迭代数组的标准方法。