5.4.2 The Enumerable object

优质
小牛编辑
136浏览
2023-12-01

Enumberable对象能够已更优雅的方式实现对列表样式的结构进行枚举。

很多其它的对象通过扩展自Enumberable对象来得到这些有用的接口。

MethodKindArgumentsDescription
each(iterator)instanceiterator: a function object conforming to Function(value, index)把每个element做为第一个参数,element的index作为第一个参数调用iterator函数。
all([iterator])instanceiterator: a function object conforming to Function(value, index)这个函数会用给出的iterator测试整个集合,如果集合中任一元素在iterator函数测试中返回false或null,那么这个函数返回false,否则返回true。如果没有给出iterator,那么就会测试所有的元素是不是不等于false和null。你可以简单的把它看成是“检测每个元素都为非空非负”。
any(iterator)instanceiterator: a function object conforming to Function(value, index), optional.这个函数会用给出的iterator测试整个集合,如果集合中任一元素在iterator函数测试中返回true,那么这个函数返回true,否则返回false。如果没有给出iterator,那么就会测试所有的元素是不是有一个不等于false和null。你可以简单的把它看成是“检测元素中是不是有非空非负的”。
collect(iterator)instanceiterator: a function object conforming to Function(value, index)调用iterator函数根据集合中每个元素返回一个结果,然后按照原来集合中的顺序,返回一个Array。
detect(iterator)instanceiterator: a function object conforming to Function(value, index)集合中每个元素调用一次Iterator,返回第一个使Iterator返回True的元素,如果最终都没有为true的调用,那么返回null。
entries()instance(none)等于toArray().
find(iterator)instanceiterator: a function object conforming to Function(value, index)等于detect().
findAll(iterator)instanceiterator: a function object conforming to Function(value, index)集合中每个元素调用Iterator,返回一个由所有调用Iterator返回结果等于true的元素组成的数组。和reject()相反。
grep(pattern [, iterator])instancepattern: a RegExp object used to match the elements, iterator: a function object conforming to Function(value, index)用pattern参数正则表达式测试集合中的每个元素,返回一个包含所有匹配正则式的元素的Array,如果给出了Iterator,那个每个结果还要经过一下Iterator处理。
include(obj)instanceobj: any object判断集合中包不包含指定对象。
inject(initialValue, iterator)instanceinitialValue: any object to be used as the initial value, iterator: a function object conforming to Function(accumulator, value, index)用Iterator联接所有集合中的元素。Iterator在被调用时把上一次迭代的结果做为第一个参数传给accumulator。第一次迭代时,accurmelator等于initialValue,最后返回accumulator的值。
invoke(methodName [, arg1 [, arg2 [...]]])instancemethodName: name of the method that will be called in each element, arg1..argN: arguments that will be passed in the method invocation.集合中的每个元素调用指定的函数(查看源代码可以发现指定函数被调用时,this指针被传成当前元素),并传入给出的参数,返回调用结果组成的Array。
map(iterator)instanceiterator: a function object conforming to Function(value, index)同collect().
max([iterator])instanceiterator: a function object conforming to Function(value, index)返回集合中元素的最大值,或调用Iterator后返回值的最大值(如果给出了Iterator的话)。
member(obj)instanceobj: any object同include().
min([iterator])instanceiterator: a function object conforming to Function(value, index)返回最小值,参见max()。
partition([iterator])instanceiterator: a function object conforming to Function(value, index)返回一个包含两个Array的Array,第一个Array包含所有调用Iterator返回True的元素,第二个Array包含剩下的元素。如果Iterator没有给出,那么就根据元素本身判断。
pluck(propertyName)instancepropertyName name of the property that will be read from each element. This can also contain the index of the element返回每个元素的指定属性名的属性的值组成的Array。
reject(iterator)instanceiterator: a function object conforming to Function(value, index)和 findAll()相反(返回所有等于false的元素).
select(iterator)instanceiterator: a function object conforming to Function(value, index)同findAll().
sortBy(iterator)instanceiterator: a function object conforming to Function(value, index)根据每个元素调用Iterator返回的值进行排序返回一个Array。
toArray()instance(none)返回由集合所有元素组成的一个Array。
zip(collection1[, collection2 [, ... collectionN [,transform]]])instancecollection1 .. collectionN: enumerations that will be merged, transform: a function object conforming to Function(value, index)合并每个给出的集合到当前集合。合并操作返回一个新的array,这个array的元素个数和原集合的元素个数一样,这个array的每个元素又是一个子array,它合并了所有集合中相同index的元素。如果transform函数被指定,那么array的每个元素还会调用transform函数先做处理。举个例子: [1,2,3].zip([4,5,6], [7,8,9]).inspect() 返回"[ [1,4,7],[2,5,8],[3,6,9] ]"