手机版

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

时间:2021-10-25 来源:互联网 编辑:宝哥软件园 浏览:

?XML : namespace PREFIX=O/分为以下几个部分:基本实现。在迭代中引用原始对象,或者直接更改数组的值,而不是返回新的数组。向迭代传递无限的参数。基本实现。今天突然发现js的数组处理起来真的很麻烦,有些代码很多,真的不如ruby迭代器。要写的代码太多了。可能js有一种特殊的处理数组的方式,我真的不知道,但是我真的很想为js实现类似ruby迭代器的东西,实现起来并不难。我们开始吧。我真的很高兴js是一种动态语言。如果是静态语言,实现起来非常不方便(更别说让我重新定义一个从array继承的类了),但是用js实现就简单多了。

哦,迭代器实际上已经实现了.很简单,是的,但是真的很方便。看下面的用法就知道:了。首先,我们定义一个数组:

1:使用:迭代来使用每个数组元素:

索赔:可以缩写为: aa . each(function(val){ alert(val)});下面也是一样。为了清楚起见,单独编写的执行结果是依次弹出每个数组元素的值。哦,哦,就这么简单。你不需要写一个可恨的。如果有大量代码,这将节省大量代码。2:用法2 :迭代处理每个数组元素并返回一个已处理的数组3360。

结果如何?可以想象,先弹出‘1,2,3,4’,再弹出‘2,4,6,8’。每个元素都已被处理并作为新数组返回。呵呵,功能很简单。如果你认为它没用,那么好吧,让我们写一个for循环。如果你喜欢这篇文章,那好吧。不管怎么说,这已经足够我目前节省很多代码了。3:更多:还可以给数组添加更多有用的方法,比如:随机错乱(棋局?),等等。但是我真的希望js能在方法名中包含更多的标点符号,这样你就可以定义每一个了?或者每一个!这个谨慎的方法,不幸的是,不幸的是,在迭代中引用了原始对象,或者直接改变了数组的值,而不是返回一个新的数组。我这里有一个改进的迭代器,因为突然想引用func函数中原来的迭代对象,所以做了如下修改

它没有太大的变化,兼容上面提到的所有功能,并且增加了对数组对象的引用。

我们可以在func函数中引用原始数组对象和当前元素的索引位置,这样可以添加很多函数。首先,我们可以直接修改原数组的值!但是,如果删除func函数中的数组元素,可能会出现意外错误!让我们做个实验看看会发生什么。

哦,我们删除了func函数中值为2的元素。结果依次弹出了1、3、4和undefined,也就是迭代函数无法知道你的数组长度发生了变化,又循环了一次。如何解决这个问题?

初步思路是判断元素是否为空,如果为空则不做任何操作,如果操作符前面为假则不执行以下语句。今天发现这个方法考虑不周,因为我错过了处理一个元素,所以需要在处理函数中增加一个偏移变量来指导当前偏移。每次删除元素时,我都会将偏移变量减少一。以索引偏移量为准,可以解决删除元素的问题,但不能解决增加元素的问题。因此,数组元素不能在这个迭代器中动态添加,否则会出现错误。注意先停在这里。传递到迭代中的无限数量的参数回来了。这一次,我们希望让这个迭代传递更多有用的用户定义的参数,而不是系统定义的参数。当然,之前所有的操作都是兼容的,所有的修改都不会破坏之前操作的兼容性。我们将主要方法修改如下:

好了,增加了一个参数,只是一个参数,不用大惊小怪,但是已经可以传递所有的参数了。参见示例:

作为刚才的例子,我们想删除数组中的一个元素。我们通过传入参数来确定删除哪个值。我们传入一个对象作为参数。这个对象是一个json对象。欧叶,json可以携带任意多的参数。不是很简单吗?看来我们实现了很多功能。但是还没有完成,需要我们自己多去探索。把前面的延伸一下。

版权声明:js数组实现了一个类似ruby的迭代器是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。