使用 next() 使用迭代器对象遍历两个 JavaScript 数组



我想将两个排序的 JavaScript 数组与其中的自定义对象进行比较并计算差异。我想使用迭代器对象来执行此操作,以使用next()遍历它们。(就像Java中的迭代器一样。在MDN中它说:

在 JavaScript 中,迭代器是一个定义序列和 可能是终止时的返回值。更具体地说,迭代器是通过具有 next(( 方法实现迭代器协议的任何对象,该方法返回具有两个属性的对象:值,序列中的下一个值;和 done,如果序列中的最后一个值已被使用,则为 true。如果 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());

最新更新