美文网首页深入解读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
    **/
    

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

    相关文章

      网友评论

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

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