6.迭代器模式

什么是迭代器模式

迭代器模式(Iterator) : 在不暴露对象内部结构的同时,顺序地访问聚合对象内部元素

迭代器模式的需求

由于多种数据结构出现反复循环遍历地情况,多个循环使得代码臃肿

迭代器模式实现

var iterator = function(arr){ 
  let index = -1
  return { 
    // 获取下一个元素
    next : function() { 
      if(++index 

lodash get方法

这种又被称为同步变量迭代器,用于将rsh的操作一层一层的进行安全检查,因为直接通过.语法或是[]直接获取而导致报错。

function get(target,path) {
  if(!target) return undefind 
  // [1] 或是 .a 这种属性都需要拆出来
  let prefix = path.replace(/[\[\.].*$/,''),
      suffix = path.replace(prefix,'')

  let keys = suffix ? [prefix,suffix.split('.')] :[prefix],
      result 
  for(key of keys) { 
    if(target[key] !== undefined) { 
      result = target[key]
    } else { 
      return undefined
    }
  }
  console.log(result)
}
console.log(get({a : '花与麦芽糖 最终电车'},'a'))

你可能感兴趣的:(6.迭代器模式)