数组是一个单一的变量,用来存储不同数据类型的元素,这样就可以通过一个单一的变量来访问它们。
它是一个有序的值列表,每个值被称为一个元素,由一个索引指定。
知道这些单一的变量包含一个元素的列表,你可能想创建一个这些元素的列表,这样你就可以用它们执行个别的功能,以及更多的功能。这就是循环发挥作用的地方。
什么是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 ,并且它不再小于scores.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 循环相同,但它不是获取key ,而是获取元素本身。
这是在数组中循环的最简单的方法之一,在后来的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
总结
在这篇文章中,我们看了六种不同的/标准的方法来循环浏览一个数组。
关键是你要了解所有这些方法,然后确定哪种方法对你来说更合适,使用起来更干净,更容易阅读。