WEB开发网
开发学院网页设计JavaScript 给js的数组实现一个类似ruby的迭代器 阅读

给js的数组实现一个类似ruby的迭代器

 2009-10-28 00:00:00 来源:WEB开发网   
核心提示:分为如下几节:·基本实现·在迭代中引用原来的对象,或者直接改变数组的值而不是返回一个新数组·向迭代传入无限多的参数·基本实现今天突然发现js的数组处理起来真是麻烦,代码一些就是一大堆,相比起ruby的迭代器来真是逊色不少,主要是要写的代码太多了,也许是js有特殊的

分为如下几节:

·基本实现

·在迭代中引用原来的对象,或者直接改变数组的值而不是返回一个新数组

·向迭代传入无限多的参数

·基本实现

今天突然发现js的数组处理起来真是麻烦,代码一些就是一大堆,相比起ruby的迭代器来真是逊色不少,主要是要写的代码太多了,也许是js有特殊的处理数组的方式,真是我不知道而已,但是我真的想自己给js实现一个类似ruby的迭代器的东东,而且实现起来也不难,那就开始动手吧.

真的应该庆幸js是动态语言啊,如果是静态语言,实现起来很不方便(别说要我重新定义一个继承自array的类),不过用js实现起来就简单多了,直接给Array对象加一个方法即可,如下:

给js的数组实现一个类似ruby的迭代器

额呵呵,迭代器其实已经实现了......好简单啊,是啊,不过这样的确方便了不少哦,看下面的用法就知道了:

首先我们定义一个数组:

给js的数组实现一个类似ruby的迭代器

1:用法一:

迭代使用每个数组元素:

给js的数组实现一个类似ruby的迭代器

声明:这里可以缩写成:aa.each(function(val){alert(val)});,以下的也同理,为了清晰,分开写的 

执行结果是依次弹出每个数组元素的值,哦呵,就是这么简单,不用写可恶的for,如果代码很多的时候,这点节省也会省出不少的代码量哦

1 2 3  下一页

Tags:js 数组 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接