JavaScript - For...of 循环

欢迎,有抱负的程序员们!今天,我们将深入探讨JavaScript最实用的特性之一:for...of 循环。作为你友好的计算机科学老师,我很高兴能引导你们开启这段旅程。所以,拿起你最喜欢的饮料,舒服地坐好,让我们一起开始这次编程冒险吧!

Javascript - For...of

for...of 循环是什么?

在我们深入了解之前,先来了解一下for...of 循环是什么。想象一下,你有一个装满彩色水果的篮子,你想一个接一个地检查每个水果。for...of 循环就像你的助手,它会从篮子中拿起每个水果,一次一个地递给你,直到篮子空了。

在编程术语中,for...of 循环允许我们遍历( Iterate,即“逐个走遍”)像数组、字符串和其他我们将稍后学习的数据结构这样的可迭代对象。

语法

现在,让我们来看看如何编写一个for...of 循环。别担心,如果一开始看起来有点奇怪——我们会一起分解它!

for (variable of iterable) {
// 要执行的代码
}

让我们分解一下:

  • for:这个关键字告诉JavaScript我们正在开始一个循环。
  • variable:这是我们遍历可迭代对象时存储每个项目的变量。
  • of:这个关键字是for...of 循环的核心。
  • iterable:这是我们正在循环的对象(比如我们的水果篮子)。
  • 花括号 {} 内的代码是我们想对每个项目执行的操作。

示例

示例 1:遍历数组

让我们从一个简单的例子开始。我们将创建一个水果数组并打印每一个。

let fruits = ['apple', 'banana', 'cherry', 'date'];

for (let fruit of fruits) {
console.log(fruit);
}

如果你运行这段代码,你会看到:

apple
banana
cherry
date

这里发生了什么?我们的for...of 循环从 fruits 数组中取出每个水果,并将其存储在 fruit 变量中。然后,我们使用 console.log() 打印每个水果。

示例 2:遍历字符串

你知道吗,字符串也是可迭代的?让我们拼写出一个单词:

let word = 'Hello';

for (let letter of word) {
console.log(letter);
}

这将输出:

H
e
l
l
o

字符串中的每个字符都被视为一个可以遍历的独立项。酷吧?

示例 3:使用 for...of 处理数字

现在,让我们来点实际的。想象你是一名老师(就像我一样!),你想计算一个班级的平均分数:

let scores = [85, 92, 78, 95, 88];
let total = 0;
let count = 0;

for (let score of scores) {
total += score;
count++;
}

let average = total / count;
console.log(`班级平均分是 ${average}`);

这个脚本将计算并打印平均分数。我们使用for...of 循环来累加所有分数并计算数量。

示例 4:跳出循环

有时,你可能想在循环完成之前停止它。我们可以使用 break 关键字。假设我们在寻找特定的水果:

let fruits = ['apple', 'banana', 'cherry', 'date'];
let searchFor = 'cherry';

for (let fruit of fruits) {
if (fruit === searchFor) {
console.log(`找到 ${searchFor}!`);
break;
}
console.log(`检查 ${fruit}...`);
}

这个脚本会在找到 'cherry' 时停止,而不会检查剩余的水果。

示例 5:使用 continue 跳过项目

如果我们只想跳过某些项目呢?我们可以使用 continue 关键字。让我们只打印以 'a' 开头的水果:

let fruits = ['apple', 'banana', 'apricot', 'cherry', 'avocado'];

for (let fruit of fruits) {
if (!fruit.startsWith('a')) {
continue;
}
console.log(fruit);
}

这将只打印 'apple'、'apricot' 和 'avocado'。

方法表

以下是我们示例中使用的一些方法的便捷表格:

方法 描述 示例
console.log() 将输出打印到控制台 console.log('Hello, World!')
startsWith() 检查字符串是否以指定字符开头 'apple'.startsWith('a') // true
break 退出循环 if (condition) break;
continue 跳过循环的当前迭代 if (condition) continue;

结论

好了,各位!我们一起穿越了for...of 循环的土地,从简单的数组到字符串,甚至学习了如何跳出或跳过项目。记住,熟能生巧,所以不要害怕用这些概念做实验。

在我多年的教学经验中,我发现最好的学习方式就是实践。所以,这里给你一个小作业:尝试使用不同类型的数据创建你自己的for...of 循环。也许可以遍历你最喜欢的电影,或者你朋友的名字。可能性是无穷的!

快乐编程,记住——在编程的世界里,每个循环都是发现的机会!

Credits: Image by storyset