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.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

(0)
打赏 支付宝 支付宝 微信 微信
terryterry
上一篇 2023年1月19日 下午1:54
下一篇 2023年1月20日 下午8:06

相关推荐

发表回复

登录后才能评论