美文网首页
为Object实现iterator接口

为Object实现iterator接口

作者: 任无名F | 来源:发表于2017-10-28 16:07 被阅读0次
let obj = {a:1, b:2, c:3};

// method 1
obj[Symbol.iterator] = function() {
  let index = 0,
      list = Object.keys(this).map(e=>this[e]);
  return {
    next: () => {
      return {
        value: list[index++],
        done: index > list.length,
      };
    },
  };
}

// method 2
obj[Symbol.iterator] = function* () {
  let list = Object.keys(this).map(e=>this[e]);
  for(let v of list) {
    yield v;
  }
}

for(let item of obj) {
  console.log(item); // 1 2 3
}

相关文章

  • 为Object实现iterator接口

  • java--Iterator接口

    Iterator接口特点:所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了...

  • ES6之iterator(迭代器)和generator(产生器)

    iterator(迭代器)iterator用于循环遍历,为for…of提供遍历接口,一切有iterator接口的数...

  • Iterator

    Iterator Iterator 是一种统一的访问接口,用来访问不同的数据结构:object、array、map...

  • 迭代器模式

    Iterator(迭代器接口):ConcreteIterator(迭代器实现类):Aggregate(容器接口):...

  • java集合框架

    一、迭代器 iterator是一个或者实现了Iterator,或者实现ListIterator接口的对象,可以通过...

  • 第六章 接口

    接口所有的方法默认都是public 可以声明接口变量,赋值为实现该接口的类object 接口可以继承接口 接口可以...

  • web知识点记录

    1、Iterator接口实现了该接口的对象原型中有属性Symbol.iterator,其值是一个函数,返回一个可迭...

  • 设计模式之迭代器模式

    基本思路 Iterator接口中有两个方法 Collection接口定义一个返回类型为Iterator的方法 以A...

  • object.clone使用

    如何使用 实现Cloneable接口 重写Object中clone方法,定位为public 调用super.clo...

网友评论

      本文标题:为Object实现iterator接口

      本文链接:https://www.haomeiwen.com/subject/gsjspxtx.html