- Prototype 教程
- Prototype - 首页
- Prototype - 简短概述
- Prototype - 有用功能
- Prototype - 实用方法
- Prototype - 元素对象
- Prototype - 数字处理
- Prototype - 字符串处理
- Prototype - 数组处理
- Prototype - 哈希处理
- Prototype - 基本对象
- Prototype - 模板
- Prototype - 枚举
- Prototype - 事件处理
- Prototype - 表单管理
- Prototype - JSON 支持
- Prototype - AJAX 支持
- Prototype - 表达范围
- Prototype - 定期执行
- Prototype 有用资源
- Prototype - 快速指南
- Prototype - 有用资源
- Prototype - 讨论
Prototype - 枚举
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 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()
返回最大元素(或基于元素的计算),如果枚举为空则返回 undefined。元素可以直接比较,或者首先应用迭代器并比较返回的值。 |
17. | member()
基于 == 比较运算符确定给定对象是否在 Enumerable 中。include() 的便捷别名。 |
18. | min()
返回最小元素(或基于元素的计算),如果枚举为空则返回 undefined。元素可以直接比较,或者首先应用迭代器并比较返回的值。 |
19. | partition()
将元素划分为两组:视为 true 的元素和视为 false 的元素。 |
20. | pluck()
针对 collect() 的常见用例的优化:为所有元素获取相同的属性。返回属性值。 |
21. | reject()
返回迭代器返回 false 的所有元素。 |
22. | select()
findAll() 方法的别名。 |
23. | size()
返回枚举的大小。 |
24. | sortBy()
基于为每个元素计算的标准提供元素的自定义排序视图。 |
25. | toArray()
返回枚举的数组表示形式。别名为 entries()。 |
26. | zip()
将 2 个或多个序列压缩在一起(想想裤子上的拉链),提供一个元组数组。每个元组包含每个原始序列中的一个值。 |