如何使用 for...of 循环遍历可迭代对象?

推荐答案

本题详细解读

1. for...of 循环的基本语法

for...of 循环是 ES6 引入的一种新的循环语法,用于遍历可迭代对象(如数组、字符串、Map、Set 等)。其基本语法如下:

  • value:每次迭代时,value 会被赋值为可迭代对象的当前元素。
  • iterable:一个可迭代对象,如数组、字符串、Map、Set 等。

2. 可迭代对象

可迭代对象是指实现了 [Symbol.iterator] 方法的对象。常见的可迭代对象包括:

  • 数组[1, 2, 3]
  • 字符串"hello"
  • Mapnew Map([['key1', 'value1'], ['key2', 'value2']])
  • Setnew Set([1, 2, 3])

3. for...offor...in 的区别

  • for...of 用于遍历可迭代对象的值。
  • for...in 用于遍历对象的属性名(键)。
-- -------------------- ---- -------
----- --- - --- -- ---

--- ------ ----- -- ---- -
  ------------------- -- ----- -- -
-

--- ------ ----- -- ---- -
  ------------------- -- ----- -- -
-

4. 自定义可迭代对象

你也可以通过实现 [Symbol.iterator] 方法来创建自定义的可迭代对象:

-- -------------------- ---- -------
----- ---------- - -
  ------------------ --------- -- -
    ----- --
    ----- --
    ----- --
  -
--

--- ------ ----- -- ----------- -
  ------------------- -- ----- -- -
-

5. 注意事项

  • for...of 不能直接用于普通对象(除非对象实现了 [Symbol.iterator] 方法)。
  • for...of 循环会自动调用可迭代对象的 [Symbol.iterator] 方法,并遍历其返回的迭代器。
纠错
反馈