如何创建一个迭代器?

推荐答案

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

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

本题详细解读

什么是迭代器?

迭代器是一种对象,它提供了一种标准的方式来遍历集合中的元素。迭代器对象必须实现 next() 方法,该方法返回一个包含 valuedone 两个属性的对象。value 表示当前迭代的值,done 是一个布尔值,表示迭代是否完成。

如何创建一个迭代器?

要创建一个迭代器,首先需要定义一个对象,并在该对象上实现 [Symbol.iterator] 方法。这个方法必须返回一个迭代器对象,该迭代器对象必须包含一个 next() 方法。

步骤解析

  1. 定义迭代器对象:在 [Symbol.iterator] 方法中,返回一个包含 next() 方法的对象。
  2. 实现 next() 方法next() 方法返回一个对象,包含 valuedone 两个属性。value 是当前迭代的值,done 表示迭代是否完成。
  3. 使用 for...of 循环for...of 循环会自动调用迭代器的 next() 方法,直到 donetrue

示例代码解析

在示例代码中,myIterable 是一个可迭代对象,它实现了 [Symbol.iterator] 方法。该方法返回一个迭代器对象,该对象包含一个 next() 方法。next() 方法通过 step 变量来控制迭代的步骤,每次调用 next() 方法时,step 增加,并根据 step 的值返回不同的 valuedone

for...of 循环遍历 myIterable 时,它会自动调用 next() 方法,直到 donetrue,从而输出每一步的值。

总结

通过实现 [Symbol.iterator] 方法和 next() 方法,可以轻松创建一个自定义的迭代器,并使用 for...of 循环来遍历它。

纠错
反馈