- 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 個或多個序列壓縮在一起(想想褲子上的拉鍊),提供一個元組陣列。每個元組包含每個原始序列中的一個值。 |