欢迎光临散文网 会员登陆 & 注册

Javascript迭代器

2023-08-08 00:47 作者:十三他很帅  | 我要投稿

JavaScript 迭代器在 ES6 中引入,用于遍历一系列值,通常是集合。根据定义,迭代器必须实现 next() 函数。该函数返回一个 { value, done } 形式的对象,其中 value 是迭代序列中的下一个值,done 是一个布尔值,确定该序列是否已耗尽。

下面我们来看一个实际项目中使用的简单迭代器示例:

在上述示例中,我们实现了一个 LinkedList 数据结构,它内部使用一个数据数组。数组中的每个项目都有一个值和一些特定于实现的属性,用于确定其在序列中的位置。默认情况下,从这个类构造的对象是不可迭代的。为了定义迭代器,我们使用 Symbol.iterator 并对其进行设置,以便返回的序列基于类的内部实现按顺序排列,而返回的项只返回其值。

此外,迭代器只是函数,这意味着它们可以像任何其他函数一样被调用(例如,将迭代委托给现有迭代器),同时也不限于 Symbol.iterator 名称。这允许我们为同一个对象定义多个迭代器。以下是这些概念发挥作用的示例:

在这个示例中,我们使用数据对象的本地数组迭代器使 SpecialList 可迭代,返回数据数组的确切值。同时,我们还定义了一个 values() 方法,它本身也是一个迭代器,在数据数组上使用 Array.prototype.filter()Array.prototype.map()。最后,我们返回结果的 Symbol.iterator,允许仅对序列中的非空对象进行迭代,并仅返回每个对象的值。

Javascript迭代器的评论 (共 条)

分享到微博请遵守国家法律