原型 - 枚举


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 + 序列,提供元组数组。每个元组包含每个原始序列的一个值。