javascript - 使用 next() 遍历两个带有迭代器对象的 JavaScript 数组
问题描述
我想将两个排序的 JavaScript 数组与其中的自定义对象进行比较并计算差异。我想使用迭代器对象来执行此操作,以使用next()
. (就像 Java 中的迭代器一样。)在 MDN 中它说:
在 JavaScript 中,迭代器是一个对象,它定义了一个序列,并在其终止时可能会返回一个值。更具体地说,迭代器是通过具有 next() 方法实现迭代器协议的任何对象,该方法返回具有两个属性的对象:值,序列中的下一个值;并完成,如果序列中的最后一个值已被消耗,则为真。如果 value 与 done 一起出现,则它是迭代器的返回值。( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators )
有没有方便的方法从 JavaScript 中的数组中获取迭代器对象?
解决方案
就像对于所有可迭代对象一样,要获得一个迭代器,访问它的Symbol.iterator
属性来获得生成器,然后调用它来获得迭代器:
const arr = ['a', 'b', 'c'];
const iter = arr[Symbol.iterator]();
console.log(iter.next());
console.log(iter.next());
console.log(iter.next());
console.log(iter.next());
const arr1 = ['a', 'b', 'c'];
const arr2 = ['a', 'b', 'c'];
const iter1 = arr1[Symbol.iterator]();
const iter2 = arr2[Symbol.iterator]();
console.log(iter1.next());
console.log(iter2.next());
console.log(iter1.next());
console.log(iter2.next());
推荐阅读
- javascript - 显示组件中函数返回的值
- flutter - Dart 将简单类转换为扩展
- java - 如何更改数组的值以便再次输出
- database - MongoDB Mac 安装
- python - 如何使用 group by 多列从 pandas 中随机选择 n 行,每个组的最小和最大计数
- python-3.x - Python3 替换 ord() 和 chr()
- windows - 在 Windows 中同时从多个 USB 麦克风捕获音频
- c++ - C++ | 重载运算符 << | 标准::地图
- python - 我应该使用什么类型的图(python mtaplotlib)(带有分箱域的条形图)
- python - 使用 selenium 单击一个 div - Python