📜  es6 for-of 循环 - Javascript (1)

📅  最后修改于: 2023-12-03 15:30:38.228000             🧑  作者: Mango

Es6 for-of 循环

Es6引入了新的循环语法——for-of循环。它可以遍历数据结构的所有元素,非常适合循环数组,字符串和生成器等可迭代对象。

基本语法

for-of循环的基本语法如下所示:

for (let value of iterable) {
   // 循环体
}

这里的iterable表示一个可迭代对象,例如数组、字符串或生成器。在每次迭代中,for-of循环会将iterable的下一个值赋值给value,然后执行循环体中的代码。

对于数组和字符串,for-of循环会遍历它们的元素,而对于生成器,则会遍历它们生成的数据。

let arr = [1, 2, 3];

for (let value of arr) {
   console.log(value);
}
// 输出: 1 2 3
let str = "hello";

for (let char of str) {
   console.log(char);
}
// 输出: h e l l o
function* range(start, end) {
   for (let i = start; i <= end; i++) {
      yield i;
   }
}

for (let num of range(1, 3)) {
   console.log(num);
}
// 输出: 1 2 3
遍历 Map 和 Set

for-of循环也可以用于遍历Map和Set结构中的元素。对于Map,for-of循环会遍历Map的键值对,而对于Set,它会遍历Set中的值。

let map = new Map();
map.set("name", "Jack");
map.set("age", 26);

for (let [key, value] of map) {
   console.log(key, value);
}
// 输出: name Jack
//       age 26
let set = new Set([1, 2, 3]);

for (let value of set) {
   console.log(value);
}
// 输出: 1 2 3
中止循环

与传统的for循环不同,for-of循环不支持break和continue语句中止循环。但是,可以使用return语句结束循环,效果跟break语句相同。

let arr = [1, 2, 3];

for (let value of arr) {
   if (value === 2) {
      return;
   }
   console.log(value);
}
// 输出: 1
结束语

for-of循环是Es6中非常有用的新特性,它可以轻松地遍历数组、字符串、Map和Set等可迭代对象。同时,使用for-of循环编写的代码也更加简洁明了。