什么是迭代器模式
迭代器模式(Iterator) : 在不暴露对象内部结构的同时,顺序地访问聚合对象内部元素
迭代器模式的需求
由于多种数据结构出现反复循环遍历地情况,多个循环使得代码臃肿
迭代器模式实现
var iterator = function(arr){
let index = -1
return {
// 获取下一个元素
next : function() {
if(++index <length ){
return arr[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'))










网友评论