Enumerable 类为枚举提供了大量有用的方法。枚举是充当值集合的对象。
枚举方法多用于枚举数组和散列。还有其他对象,如ObjectRange和各种 DOM 或 AJAX 相关对象,您可以在其中使用枚举方法。
上下文参数
每个采用迭代器的 Enumerable 方法也将上下文对象作为下一个(可选)参数。上下文对象是迭代器将要绑定的对象,因此其中的this关键字将指向该对象。
var myObject = {};
['foo', 'bar', 'baz'].each(function(name, index) {
this[name] = index;
}, myObject); // we have specified the context
myObject;
这将产生以下结果:
{ foo: 0, bar: 1, baz: 2}
高效使用
- 当您需要对所有元素调用相同的方法时,请使用invoke()方法。
- 当您需要在所有元素上获取相同的属性时,请使用pluck()方法。
- findAll/select方法检索与给定谓词匹配的所有元素。相反,reject()方法检索所有与谓词不匹配的元素。在需要两个集合的特定情况下,可以避免循环两次:只需使用partition()方法。
这是与 Enumerable 相关的所有方法的完整列表。
原型可枚举方法
注意– 确保你至少拥有 prototype.js 的 1.6 版本。
编号 | 方法及说明 |
---|---|
1. | all() 直接或通过提供的迭代器计算确定所有元素是否布尔等效于 true。 |
2. | any() 直接或通过提供的迭代器计算确定至少一个元素是否布尔值等同于 true。 |
3. | collect() 返回将迭代器应用于每个元素的结果。别名为 map()。 |
4. | detect() 查找迭代器返回 true 的第一个元素。由 find() 方法别名。 |
5. | each() 它允许您以通用方式遍历所有元素,然后返回 Enumerable,从而允许链式调用。 |
6. | eachSlice() 根据给定的大小将项目分组,最后一个块可能更小。 |
7. | entries() 更通用的 toArray 方法的别名。 |
8. | find() 查找迭代器返回 true 的第一个元素。detect() 的便利别名。 |
9. | findAll() 返回迭代器返回 true 的所有元素。别名为 select()。 |
10. | grep() 返回与过滤器匹配的所有元素。如果提供了迭代器,它将用于为每个选定元素生成返回值。 |
11. | inGroupsOf() 将项目分组为固定大小的块,必要时使用特定值填充最后一个块。 |
12. | include() 根据 == 比较运算符确定给定对象是否在 Enumerable 中。别名为 member()。 |
13. | inject() 根据迭代器的连续结果递增地构建结果值。 |
14. | invoke() 优化 each() 或 collect() 的常见用例:为所有元素调用具有相同潜在参数的相同方法。 |
15. | map() 返回将迭代器应用于每个元素的结果。collect() 的方便别名。 |
16. | max() 返回最大元素(或基于元素的计算),如果枚举为空,则返回未定义。元素要么直接比较,要么首先应用迭代器并比较返回值。 |
17. | member() 根据 == 比较运算符确定给定对象是否在 Enumerable 中。include() 的方便别名。 |
18. | min() 返回最小元素(或基于元素的计算),如果枚举为空,则返回未定义。元素要么直接比较,要么首先应用迭代器并比较返回值。 |
19. | partition() 将元素分成两组:那些被认为是真的,那些被认为是假的。 |
20. | pluck() 优化 collect() 的常见用例:为所有元素获取相同的属性。返回属性值。 |
21. | reject() 返回迭代器返回 false 的所有元素。 |
22. | select() findAll() 方法的别名。 |
23. | size() 返回枚举的大小。 |
24. | sortBy() 根据迭代器为每个元素计算的条件,提供元素的自定义排序视图。 |
25. | toArray() 返回枚举的数组表示形式。别名为 entries()。 |
26. | zip() 将 2 + 序列拉在一起(想想一条裤子上的拉链),提供一个元组数组。每个元组包含每个原始序列的一个值。 |
作者:terry,如若转载,请注明出处:https://www.web176.com/prototype/8248.html