js设计模式之迭代器模式学习笔记--封装简单的数组迭代器
来源:互联网 发布:淘宝衣服女装 编辑:程序博客网 时间:2024/05/02 13:05
我们封装一个迭代器函数,来实现类似jQuery的 $.each()方法的迭代效果;\
var each = function(arr,callbreak){
for(var i=0;i<arr.length;i++){
callbreak.call(arr[i],i,arr[i]);
};
};
each([1,2,3],function(a,b){
console.log(a,b);
});
现在我们增加一个需求 , 需要判断这两个数组是否相等,这时就要返回去修改封装好的each()方法,这里就牵出一个问题
这个方法看似简单易用,但是拓展麻烦,不好维护,
用迭代器模式改写这个each方法:
var iterator = function(arr){
var num = 0,
next = function(){
current += 1;
},
down = function(){
return num >= arr.length;
},
getItem = function(){
return arr[num];
},
getLemngth = function(){
retrun arr.length;
};
return {
num : num,
next : next,
down : down,
getItem : getItem,
getLength : getLength
};
};
var each = function(arr1,arr2){
while( !arr1.down && !arr2.down){//当传进来的两个参数都不为空的时候再进行循环
if( arr1.getItem() != arr2.getItem || arr1.getLength != arr2.getLength ){
throw new Error('不相等');
//此处省略 ..... (业务逻辑)
}
arr1.next();
arr2.next();
};
alert('相等');
//此处省略 ..... (业务逻辑)
};
var arr1 = iterator([1,2,3]),
arr2 = iterator([1,2,3,4]);
each(arr1,arr2);//throw new Error('不相等');
- js设计模式之迭代器模式学习笔记--封装简单的数组迭代器
- 设计模式学习笔记之迭代器模式
- 设计模式学习笔记之迭代器模式
- 设计模式学习笔记之迭代器模式
- 【js设计模式笔记---封装】
- 【js设计模式笔记---封装】
- 设计模式学习之路 - 迭代器模式 - 封装遍历
- 设计模式学习笔记之UML符号的简单总结
- 设计模式学习笔记之简单工厂模式
- 【设计模式】学习笔记之简单工厂模式
- Java学习笔记---设计模式之简单工厂模式
- 设计模式学习笔记之简单工厂模式
- 设计模式学习笔记(Java篇)之简单工厂模式
- js设计模式之迭代器模式
- JS设计模式之迭代器模式
- 设计模式学习笔记(四):封装变化
- Javascript 设计模式学习笔记(1) - 封装
- 学习笔记----设计模式之动态代理+工厂模式的混合使用简单demo
- seo的核心不在于技术而是思维
- GreenDao数据库简单配置和升级
- mysql在linux下的常用命令
- Android相对布局和线性布局
- 在前台显示返回结果出现$ref
- js设计模式之迭代器模式学习笔记--封装简单的数组迭代器
- BASIC-14VIP试题 时间转换
- QT中倒计时显示 QLCDNumber
- Ueditor上手使用教程
- OpenWrt开发(一)序
- ARM编程模型及指令集
- Kotlin学习-基本类型(三)
- # 深度学习搭建caffe框架遇到的问题汇总
- 如何在windows系统安装yarn