原文: How to Loop Through an Array in JavaScript – JS Iterate Tutorial

数组是一个变量存储不同数据类型的元素。我们可以通过单个变量访问数组。

它是一个有序的值列表,每个值是一个元素,可以通过索引访问。

知道这些单个变量包含元素列表,你可能希望创建这些元素的列表,以便你可以使用它们执行单个功能等等。这就是循环发挥作用的地方。

JavaScript 中的循环是什么

循环是一种计算机程序,它允许我们将特定操作重复预定次数,而无需单独编写该操作。

例如,如果我们有一个数组,想要输出数组中的每个元素,我们可以简单地循环并执行一次该操作,而不是使用索引号一个一个地这样做。

在 JavaScript 中有很多方法可以循环遍历数组。在本文中,我们将介绍最常用的方法,以便你学习不同的方法并了解它们的工作原理。

我们将在本文中使用以下数组:

const scores = [22, 54, 76, 92, 43, 33];

如何在 JavaScript 中使用 While 循环遍历数组

你可以使用 while 循环来评估括在括号 () 中的条件。如果条件为 true,则执行 while 循环内的代码。如果为 false,则终止循环。

如果我们想遍历一个数组,可以使用 length 属性来指定循环应该一直持续到我们到达数组的最后一个元素。

现在让我们使用 while 循环方法来循环遍历数组:

let i = 0;

while (i < scores.length) {
    console.log(scores[i]);
    i++;
}

这将一个接一个地返回我们数组中的每个元素:

22
54
76
92
43
33

在上面的循环中,我们首先初始化了索引号,使其从 0 开始。然后这个数字会不断增加并输出每个元素,直到我们设置的条件返回 false,说明我们已经到了数组的末尾。当 i = 6 时,将不再执行条件,因为数组的最后一个索引是 5

如何在 JavaScript 中使用 do…while 循环遍历数组

do...while 循环与 while 循环几乎相同,只是它先执行主体,然后再评估后续执行的条件。这意味着循环的主体总是至少执行一次。

让我们用 do...while 循环执行相同的循环,看看它是如何工作的:

let i = 0;

do {
    console.log(scores[i]);
    i++;
} while (i < scores.length);

这将返回我们数组中的每个元素:

22
54
76
92
43
33

如前所述,这将始终在评估任何条件集之前运行一次。例如,如果我们将索引 i 设置为 6,并且它不再小于 score.length,则循环体将在检查条件之前首先运行:

let i = 6;

do {
    console.log(scores[i]);
    i++;
} while (i < scores.length);

这将返回 undefined,因为我们在数组中没有索引为 6 的元素,但你可以看到它在停止之前运行了一次。

如何在 JavaScript 中使用 for 循环遍历数组

for 循环是一个迭代语句,它检查某些条件,然后只要满足这些条件就重复执行一段代码。

使用 for 循环方法时,我们不需要先初始化索引,因为初始化、条件、迭代都在括号中处理,如下所示:

for (let i = 0; i < scores.length; i++) {
    console.log(scores[i]);
}

这将像其他方法一样返回所有元素:

22
54
76
92
43
33

如何在 JavaScript 中使用 for...in 循环遍历数组

for...in 循环是一种更简单的遍历数组的方法,因为它为我们提供了键,我们现在可以使用该键以这种方式从数组中获取值:

for (i in scores) {
    console.log(scores[i]);
}

这将输出我们数组中的所有元素:

22
54
76
92
43
33

如何在 JavaScript 中使用 for...of 循环遍历数组

for...of 循环遍历可迭代对象,例如数组、集合、映射、字符串等。它与 for...in 循环具有相同的语法,但它不是获取键,而是获取元素本身。

这是循环数组的最简单方法之一,并在 JavaScript ES6 的更高版本中引入。

for (score of scores) {
    console.log(score);
}

这将获取数组的每个元素,我们不再需要使用索引来获取数组的每个元素:

22
54
76
92
43
33

如何在 JavaScript 中使用 forEach 循环遍历数组

数组方法 forEach() 循环遍历任何数组,按索引升序对每个数组元素执行一次提供的函数。此函数被称为回调函数。

这是一种更高级的方法,它可以做的不仅仅是简单地遍历每个元素,你也可以使用它以这种方式循环:

scores.forEach((score) => {
    console.log(score);
});

你可以这样写成一行:

scores.forEach((score) => console.log(score));

这将为我们提供与所有先前方法相同的输出:

22
54
76
92
43
33

总结

在本文中,我们研究了六种不同/标准的遍历数组的方法。

了解所有这些方法,然后确定哪种方法更适合你、更易于使用且更易于阅读,这一点非常重要。