资讯专栏INFORMATION COLUMN

es6--iterator 和 for...of

loostudy / 2245人阅读

摘要:什么是中这种数据对象这样就需要一种统一的接口机制来处理所有不同的数据结构作用为各种数据结构提供一个同一的简便的数据接口使得数据结构的成员按照某种次序排列新增了循环来遍历就是通过不断的来访问值手写返回一个包含和属性的对象数组字符串天生具备遍历

什么是iterator

es6中map set arr obj 这4种数据对象 这样就需要一种统一的接口机制来处理所有不同的数据结构
作用:
1、为各种数据结构提供一个同一的、简便的数据接口
2、使得数据结构的成员按照某种次序排列
3、es6 新增了 for..of循环 来遍历iterator

iterator就是通过不断的next来访问值{value:value}

手写iterator
   var arr=[1,2,3]
     function iterator(arr) {
         let index=0;
         return {
             next:function () {
                 return index

数组 set map 字符串 天生具备iterator遍历器接口

检测一个数组解构是否天生就具有iterator?

是否具有Symbol.iterator属性

 var arr1=[1,2,3];
    var set1=new Set(["a","b","c"])
    var map1=new Map([["a",1],["b",2]])  //一定要正确的定义Map 
        var str="sasa";
 
    var ai=arr1[Symbol.iterator]();
    var si=set1[Symbol.iterator]();
    var mi=map1[Symbol.iterator]();
    console.log(ai,si,mi)  //就会返回数组、集合、map的遍历器接口
        console.log(str[Symbol.iterator]())  字符串的遍历器接口

但是object是没有Symbol.iterator这个属性的

   var obj={};
    console.log(obj[Symbol.iterator]())  //报错
具备iterator接口的集合都能够进行哪些操作

1、解构赋值
2、扩展运算符 ...将一个数据结构展开

   var str="sasa";
     var arrstr=[...str];
     console.log(arrstr)

利用这个原理实现数组去重

    var arrchong=[1,2,3,1,1,3,34,4,1];
    console.log([...(new Set(arrchong))])

3、都可以是用for of循环

 var arrchong=[1,2,3,1,1,3,34,4,1];
    for(let i of arrchong){
        console.log(i)
    }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88699.html

相关文章

  • ES6 Iterator笔记(摘抄至阮一峰的ECMAScript 6入门)

    摘要:也就是说,遍历器对象本质上,就是一个指针对象。执行这个函数,就会返回一个遍历器。一个对象如果要有可被循环调用的接口,就必须在的属性上部署遍历器生成方法原型链上的对象具有该方法也可。后面跟的是一个可遍历的结构,它会调用该结构的遍历器接口。 ES6 Iterator笔记(摘抄至阮一峰的ECMAScript 6入门) Iterator的遍历过程 创建一个指针对象,指向当前数据结构的起始位...

    mayaohua 评论0 收藏0
  • es 知识点解读

    摘要:返回的遍历器对象,可以依次遍历函数内部的每一个状态。以后,每次调用遍历器对象的方法,就会返回一个有着和两个属性的对象。由于函数就是遍历器生成函数,因此可以把赋值给对象的属性,从而使得该对象具有接口。 let 和 const 作用域的概念 全局作用域 函数作用域 块作用域如何使用let和const 使用let 1、形成块级作用域2、es6下强制开启严格模式,而在es5下,需要use ...

    LoftySoul 评论0 收藏0
  • 【快速入门系列】简述 for...in for...of 区别

    摘要:像和使用内置构造函数所创建的对象都会继承自和的不可枚举属性,例如的方法或的方法。循环将遍历对象本身的所有可枚举属性,以及对象从其构造函数原型中继承的属性更接近原型链中对象的属性覆盖原型属性。遍历数组时推荐使用,其中为数组每一项的值。 引言 在对数组或对象进行遍历时,我们经常会使用到两种方法:for...in 和 for...of,那么这两种方法之间的区别是什么呢?让我们来研究研究。 一...

    ashe 评论0 收藏0
  • for ...offor... in

    摘要:也就是说,遍历器对象本质上,就是一个指针对象。规定,默认的接口部署在数据结构的属性,或者说,一个数据结构只要具有属性,就可以认为是可遍历的属性本身是一个函数,就是当前数据结构默认的遍历器生成函数。执行这个函数,就会返回一个遍历器。 for...in遍历对象的属性或数组索引(ES5) eg1:遍历数组 var arr=[a,b,c,d]; for(let index in...

    lijinke666 评论0 收藏0
  • ES6中的Iteratorfor...of循环那些事

    摘要:一个对象如果要有可被循环调用的接口,就必须在的属性上部署遍历器生成方法原型链上的对象具有该方法也可。阮大神案例上面代码是一个类部署接口的写法。属性对应一个函数,执行后返回当前对象的遍历器对象。 最近看阮一峰阮大神的ES6,刚刚看到Iterator和for...of循环这一章,小作笔记跟大家略微分享一下,不足之处还望大家多多指正 Iterator(遍历器)就是一种机制;任何数据结构只要是...

    OpenDigg 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<