对Javascript系列的深入理解(35):设计模式的迭代器模式详细解决方案

对Javascript系列的深入理解(35):设计模式的迭代器模式详细解决方案
介绍

迭代器模式(迭代器):提供一种方法,在不显示对象的内部表示的情况下,按顺序排列聚合对象中的元素。

迭代器的几个特征是:

1。访问聚合对象的内容而不公开其内部表示。

2。为遍历不同的集合结构提供统一的接口,使同一算法能够在不同的集合结构上运行

三.穿越和改变迭代器集合结构可能造成的问题(例如,C # foreach是不允许修改的项目)。

文本

在一般的迭代,我们至少有2个方法,hasNext()和下(),这样我们可以做的所有对象的遍历,我们先举个例子:

复制代码代码如下所示:

VaR的=((){()函数

var指数= 0,

数据= { 1, 2, 3,4, 5 },

长度= data.length;

返回{

下一步:函数(){

无功元件;

如果(!This.hasNext()){

返回null;

}

元素=数据{索引};

索引= 2;

返回的元素;

},

HasNext:函数(){

返回索引<长度;

},

函数(){

索引= 0;

},

电流:函数(){

返回数据{索引};

}

};

}();
使用的方法是以通常的方式在C #相同:

复制代码代码如下所示:

结果:1、3、5 /迭代

而(agg.hasnext()){

console.log(agg.next());

}
当然,还可以通过添加其他方法重置数据,然后继续其他操作

复制代码代码如下所示:

重置

Agg.rewind();

Console.log((AGG。电流)); / / 1
jQuery的应用实例

jQuery中一个非常有名的迭代器是每个方法。通过每个函数,我们可以导入附加函数,然后迭代所有项项,例如:

复制代码代码如下所示:

美元。每个({ 'dudu ','dudu ','酸奶的小妹妹,毫米},函数(指数值){

console.log(指数+ ':' +价值);

});



$(李的)。每个(函数(指数){

console.log(指数+:+ $(this)。文本()));

});
总结

迭代器的使用场景是集合内的结果常常是不同的。我们不想公开它的内部结构,但是让客户机代码透明地访问底部的元素。在这种情况下,我们可以使用迭代器模式。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部