将数组转换为迭代器

Nic*_*ull 9 javascript iterator

如何将数组转换为迭代器,以便我可以调用两者nextdone迭代数组的值?

我已经详尽地看到了

数组是可迭代的

但它没有任何一个属性 ( const a = [1,2,3]; a.done; // returns undefined)。

我尝试直接访问Symbol.iterator( const iter = a[Symbol.iterator];),但它只是返回function values()数组。

Mar*_*ski 11

使用.values()方法,它返回数组元素上的迭代器。


小智 9

您可以使用.entries()方法。

const a = [1, 2, 3];

const iterator = a.entries();

console.log(iterator.next().value, iterator.next().done);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢约翰!尽管更令人愉快,“entries”方法并没有像“Symbol.iterator”那样回答问题,因为每个值都返回“[index, value]”(例如,对于“const iterator = [1,2,3”) ].entries(); iterator.next();` 给出 `[0, 1]`。 (2认同)