在JavaScript中,for...of
循环用于遍历可迭代对象的元素。每次迭代,它都会提供可迭代对象的一个元素。可迭代对象包括数组、字符串、映射(maps)、集合(sets)以及生成器(generators)等。
JavaScript 中的 for...of
循环是遍历可迭代对象的一种更有效的方法,相比使用 for...in
循环来说。for...of
循环遍历的是属性值,而 for...in
循环用于遍历对象的键(属性名)。
语法
for...of
循环在 JavaScript 中的语法如下:
for (ele of iterable) {
}
参数
-
-
of
:这是 JavaScript 中的一个运算符。
-
iterable
:这是像对象、数组、字符串等可迭代的对象。
示例
示例:使用数组的 for...of 循环
在下面的例子中,数组包含各种字符串。之后,我们使用 for...of
循环来遍历每个数组元素。在输出中,我们可以看到它打印了每个数组元素。
<html>
<head>
<title>JavaScript - for...of 循环</title>
</head>
<body>
<p id="output"> </p>
<script>
const output = document.getElementById("output");
const arr = ["JavaScript", "Python", "C", "C++", "HTML", "CSS"];
for (let ele of arr) {
output.innerHTML += ele + "<br>";
}
</script>
</body>
</html>
输出
JavaScript
Python
C
C++
HTML
CSS
示例:使用字符串的 for...of 循环
在JavaScript中,字符串也是可迭代的,因为我们可以通过每个字符来遍历字符串。在下面的代码中,使用 for...of
循环来遍历字符串中的每个字符。
<html>
<head>
<title>JavaScript - for...of 循环</title>
</head>
<body>
<p id="output"> </p>
<script>
const output = document.getElementById("output");
let str = "JavaScript";
for (let char of str) {
output.innerHTML += char + ", ";
}
</script>
</body>
</html>
输出
J, a, v, a, S, c, r, i, p, t,
示例:使用集合的 for...of 循环
在JavaScript中,集合包含唯一的元素。这里,我们传递了一个包含数字的数组作为 Set()
构造函数的参数来创建一个集合。之后,我们使用 for...of
循环来遍历这个集合。
<html>
<head>
<title>JavaScript - for...of 循环</title>
</head>
<body>
<p id="output"> </p>
<script>
const output = document.getElementById("output");
const nums = new Set([10, 20, 30, 30, 30, 40, 50, 60]);
for (let num of nums) {
output.innerHTML += num + ", ";
}
</script>
</body>
</html>
输出
10, 20, 30, 40, 50, 60,
示例:使用映射的 for...of 循环
映射在JavaScript中包含键值对,并且类似于对象。这里,我们创建了一个映射并在映射中插入了三个键值对。当我们使用 for...of
循环来遍历映射元素时,在每次迭代中,我们可以获取到键和值,如下面的代码所示。
<html>
<body>
<p id="output"> </p>
<script>
const output = document.getElementById("output");
const map = new Map();
map.set("one", 1);
map.set("second", 2);
map.set("third", 3);
for (let [k, v] of map) {
output.innerHTML += k + " -> " + v + "<br/>";
}
</script>
</body>
</html>
输出
one -> 1
second -> 2
third -> 3
然而,你也可以使用 for...in
循环来遍历像数组、字符串、映射、集合等这样的可迭代对象。