美文网首页深入解读JavaScript
迭代器模式开发实践

迭代器模式开发实践

作者: 悟C | 来源:发表于2018-09-17 21:47 被阅读0次

迭代器模式是指提供一种方法顺利访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。

迭代器我们常见的Jquery的$.each、lodash的_.each,下面看一下如何实现一个迭代器:

function each(obj, callback) {
  var value,
      i = 0;
      length = obj.length,
      isArray = Object.prototype.toString.call(obj) === '[object Array]';

      if (isArray) {
        for (; i < length; i++) {
          value = callback.call(obj[i], i, obj[i]);
          if (value === false) {
            break;
          }
        }
      } else {
        for (i in obj) {
          value = callback.call(obj[i], i, obj[i]);
          if (value === false) {
            break;
          }
        }
      }
    return obj;
}

each([1, 2, 3], (index, item) => {
  console.log('数组迭代:', index, item);
});

each([1, 2, 3], (index, item) => {
  if (item === 2) {
    return false;
  }
  console.log('数组迭代:', index, item);
});

each({ name: 'zhangfu', age: 26 }, (index, item) => {
  console.log('对象迭代:', index, item);
});
/**
数组迭代: 0 1
数组迭代: 1 2
数组迭代: 2 3
数组迭代: 0 1
对象迭代: name zhangfu
对象迭代: age 26
**/

上面就是一个简单的迭代器,迭代模式比较简单很多时候并不被认为是一种模式。

相关文章

  • 迭代器模式开发实践

    迭代器模式是指提供一种方法顺利访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。 迭代器我们常见的Jq...

  • 迭代器模式

    摘自《JavaScript设计模式与开发实践》 迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不...

  • 面向对象编程实践--引言

    关键字: 面向对象 实践 原则 模式 迭代器模式 作为一个资深码农,差不多有20年开发经验了。从入门开始就学...

  • 设计模式(17) 迭代器模式

    迭代器模式 基于IEnumerable的实现 使用场景 迭代器模式的优缺点 迭代器模式 迭代器模式用于顺序访问集合...

  • 7迭代器模式

    来源:JavaScript设计模式与开发实践 迭代器模式是指提供一种方法顺序访问一个聚合对象的各个元素,而又不需要...

  • 第5章 -行为型模式-迭代器模式

    一、迭代器模式的简介 二、迭代器模式的优缺点 三、迭代器模式的实例

  • 行为型模式:迭代器模式

    LieBrother原文:行为型模式:迭代器模式 十一大行为型模式之六:迭代器模式。 简介 姓名 :迭代器模式 英...

  • Iterator模式

    迭代器模式(Iterator模式) 定义: 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 ...

  • 迭代器模式

    一、迭代器模式介绍 二、迭代器模式代码实例

  • 设计模式 | 迭代器模式及典型应用

    本文的主要内容: 介绍迭代器模式 源码分析迭代器模式的典型应用Java集合中的迭代器模式Mybatis中的迭代器模...

网友评论

    本文标题:迭代器模式开发实践

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