原型 - 枚举
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. | 全部()
直接或通过提供的迭代器计算确定所有元素是否布尔值等于 true。 |
2. | 任何()
直接或通过提供的迭代器计算确定至少一个元素是否布尔值等于 true。 |
3. | 收集()
返回将迭代器应用于每个元素的结果。别名为map()。 |
4. | 探测()
查找迭代器返回 true 的第一个元素。由 find() 方法别名。 |
5. | 每个()
它允许您以通用方式迭代所有元素,然后返回 Enumerable,从而允许链调用。 |
6. | 每个切片()
根据给定大小将项目分组为块,最后一个块可能更小。 |
7. | 条目()
更通用的 toArray 方法的别名。 |
8. | 寻找()
查找迭代器返回 true 的第一个元素。detector() 的便捷别名。 |
9. | 找到所有()
返回迭代器返回 true 的所有元素。别名为 select()。 |
10. | grep()
返回与过滤器匹配的所有元素。如果提供了迭代器,它将用于为每个选定元素生成返回值。 |
11. | inGroupsOf()
将项目分组为固定大小的块,如有必要,使用特定值填充最后一个块。 |
12. | 包括()
根据 == 比较运算符确定给定对象是否在 Enumerable 中。别名为member()。 |
13. | 注入()
根据迭代器的连续结果增量构建结果值。 |
14. | 调用()
针对each() 或collect() 的常见用例进行优化:使用相同的潜在参数对所有元素调用相同的方法。 |
15. | 地图()
返回将迭代器应用于每个元素的结果。collect() 的便捷别名。 |
16. | 最大限度()
返回最大元素(或基于元素的计算),如果枚举为空,则返回未定义。元素可以直接比较,也可以首先应用迭代器并比较返回值。 |
17. | 成员()
根据 == 比较运算符确定给定对象是否在 Enumerable 中。include() 的便捷别名。 |
18. | 分钟()
返回最小元素(或基于元素的计算),如果枚举为空,则返回未定义。元素可以直接比较,也可以首先应用迭代器并比较返回值。 |
19. | 分割()
将元素分为两组:被视为 true 的元素和被视为 false 的元素。 |
20. | 采摘()
对collect()常见用例的优化:为所有元素获取相同的属性。返回属性值。 |
21. | 拒绝()
返回迭代器返回 false 的所有元素。 |
22. | 选择()
findAll() 方法的别名。 |
23. | 尺寸()
返回枚举的大小。 |
24. | 排序方式()
根据迭代器为每个元素计算的标准,提供元素的自定义排序视图。 |
25. | toArray()
返回枚举的数组表示形式。别名为entries()。 |
26. | 压缩()
拉链在一起(想想一条裤子上的拉链)2 + 序列,提供元组数组。每个元组包含每个原始序列的一个值。 |