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

使用next()使用迭代器对象迭代两个JavaScript数组,javascript,arrays,iterator,Javascript,Arrays,Iterator,我想比较两个排序的JavaScript数组和其中的自定义对象,并计算它们之间的差异。我想使用迭代器对象通过next()遍历它们来实现这一点。(就像Java中的迭代器一样。)MDN中说: 在JavaScript中,迭代器是定义序列和 可能在其终止时返回值。更具体地说,迭代器是通过使用next()方法实现迭代器协议的任何对象,该方法返回具有两个属性的对象:value,序列中的下一个值;和done,如果序列中的最后一个值已被使用,则为true。如果值与“完成”一起出现,则它是迭代器的返回值。() 是否

我想比较两个排序的JavaScript数组和其中的自定义对象,并计算它们之间的差异。我想使用迭代器对象通过
next()
遍历它们来实现这一点。(就像Java中的迭代器一样。)MDN中说:

在JavaScript中,迭代器是定义序列和 可能在其终止时返回值。更具体地说,迭代器是通过使用next()方法实现迭代器协议的任何对象,该方法返回具有两个属性的对象:value,序列中的下一个值;和done,如果序列中的最后一个值已被使用,则为true。如果值与“完成”一起出现,则它是迭代器的返回值。()


是否有任何方便的方法可以从JavaScript中的数组中获取迭代器对象?

与所有iterable对象一样,要获取迭代器,请访问其
符号。迭代器
属性以获取生成器,并调用它以获取迭代器:

const arr=['a','b','c'];
常量=arr[Symbol.iterator]();
log(iter.next());
log(iter.next());
log(iter.next());

log(iter.next())这只是为了娱乐/教育目的吗?如果(!(arr1.length!==arr2.length | | | arr1.some((x,i)=>x!==arr2[i]))
@Andreas感谢您的提示,它不会比
简单/短很多。你能详细解释一下这种可能性吗?也许在另一个答案中,作为参考。我不会将其作为答案添加,因为您明确要求使用迭代器。但它相当简单,特别是因为它只需要处理排序数组。第一个检查是长度。如果这不匹配,我们不需要检查元素。如果长度匹配,我们会检查数组中是否有任何元素(基于它们的索引)与不匹配。我以为会有更多我看不到的魔力。实际上,我想比较数组,以便计算差异,然后使用差异。因此,您的简单解决方案在这里没有帮助。(我刚才在问题中补充了这一澄清。)