Iterator

11 篇文章 1 订阅

介绍

遍历器是一种接口,为不同的数据类型提供统一的访问机制,不管什么数据类型只要部署了Iterator接口(才可以使用for of),都可以完成遍历操作。

作用
  1. 为各种数据结构,提供统一的访问接口
  2. 使得各种数据结构成员能够按照某种次序排列
  3. Iterator接口可以用于for-of循环
next()方法

在遍历器对象Iterator中,有一个next方法,该方法会返回一个对象,对象中由两个属性value、done(当前数据是否遍历完)

let arr = [1,2,3]
let iterator = arr.values()
console.log(iterator.next())    //{ value: 1, done: false }
console.log(iterator.next())    //{ value: 2, done: false }
console.log(iterator.next())   //{ value: 3, done: false }
console.log(iterator.next())  //{ value: undefined, done: true }
添加迭代器
   获取数组中的values方法
        console.log(Array.prototype[Symbol.iterator])
        console.log([][Symbol.iterator])

    let arr_like = {
        "0":"tom",
        "1":"25",
        "2":"male",
        length:3,
        [Symbol.iterator]:[][Symbol.iterator]
    }
    console.log(arr_like);
    for(let val of arr_like){
        console.log(val);
    }
for-of循环

只有拥有迭代器的对象才能使用的循环
拥有迭代器的对象:Array,String,Set,Map,arguments
举例:

 let map = new Map([['name','tom'],["age",20]])
 for(let res of map) {
      console.log(res)
  }//["name","tom"]   ["age",20]

  let set = new Set([1,2,3,4,5])
  for(let res of set) {
      console.log(res)
  }  //1  2  3  4   5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值