遍历&迭代

时间:2021-6-7 作者:qvyue
  • 遍历&迭代的区别?

  • 什么是迭代(它是一种模式)?
    从目标源 依次 逐个抽取数据的方式;
    目标源 特点: 1.有序的; 2.连续的;
    for… of …:用于遍历可迭代对象;

  • 什么是遍历(它是一种方式)?是一种通用的方式,并没有具体指哪一种;

  • for… of …:调用可迭代对象中的 symbol.iteration 属性实现迭代,可迭代对象有Array,String,但Object本身是不存在迭代属性的,因为对象不是有序的,所以对象是不可以迭代的,但我们可以通过数组和字符串内置的symbol.iteration属性中获取迭代的共性,然后自定义对象的迭代属性。

  • 迭代的共性:
    执行可迭代对象的symbol.iteration属性,并调用内部的next()方法触发迭代;

  • 自定义对象的迭代属性:
    根据迭代的共性,我们可以return一个对象,在对象内自定义next()方法,根据索引去做判断且循环的逻辑,最后返回一个对象 {value: 键值对 ,done:是否迭代完成}

  • 自身是可迭代的有:
    Array,
    Map(ES6 提供的数据结构,本质上是键值对集合),
    Set(ES6 提供的数据结构,本身是一个构造函数,类似数组,但是成员的值都是唯一的,不存在重复的值),
    String,
    TypeArray,
    arguments,
    NodeList(节点列表 document.getElementsByTagName(‘div’)),
    它们都具有symbol.iteration 属性,并且可以用for…of…迭代

    遍历&迭代
    遍历&迭代
    可迭代属性 symbol.iteration
    遍历&迭代
    可迭代属性 symbol.iteration
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。