首页 新闻 会员 周边 捐助

关于js中的可迭代对象的实际应用

0
悬赏园豆:5 [待解决问题]

今天看了一下Symbol.iterator,自己大概的理解就是 可以搭配循环操作 从对象中定义的起始值迭代至定义的结束值,或者以自己需要的节点为结束?

大概例子写的比较简单吧,我不理解的是这期间能做什么呢?或者在实际应用中什么场景会需要这种操作?谢谢

问题补充:

补充一下看到的例子,不理解这样能用来做什么呢

SE7EN_96的主页 SE7EN_96 | 初学一级 | 园豆:199
提问于:2023-03-02 17:12
< >
分享
所有回答(2)
0

可迭代对象就是为了方便迭代噻
比如 NodeList 就是可迭代对象

for (let image of document.querySelectorAll('img')) {
  console.log(image.src)
}
by.Genesis | 园豆:2824 (老鸟四级) | 2023-03-03 09:52

遍历对象我理解,可能我表达的不对,在上面又补充了问题

支持(0) 反对(0) SE7EN_96 | 园豆:199 (初学一级) | 2023-03-03 11:49

@SE7EN_96: 这个就是自定义了一个可迭代对象,类似于数组 [1, 2, 3, 4, 5]

支持(0) 反对(0) by.Genesis | 园豆:2824 (老鸟四级) | 2023-03-03 13:00
0

Symbol.iterator这玩意就是个接口,你实现了你就有了这个迭代的能力(可以使用for...of访问了)

 

什么场景使用?

  1. 遍历自定义数据结构:当我们定义一些自定义的数据结构,例如树、图等,需要按照特定的顺序遍历其中的元素时,可以使用迭代器对象来实现自定义的迭代行为。

  2. 遍历不支持for...of循环的对象:某些对象不支持for...of循环,例如Set和Map等,我们可以使用迭代器对象来遍历其中的元素。

  3. 实现自定义的序列生成器:有时我们需要实现一些自定义的序列生成器,例如斐波那契数列、素数序列等,可以使用迭代器对象来生成这些序列。

总之,当我们需要自定义迭代行为时,可以使用迭代器对象来实现。使用迭代器对象可以使我们的代码更加灵活、可扩展,同时也可以提高代码的可读性和可维护性。

talentzemin | 园豆:775 (小虾三级) | 2023-03-08 21:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册