Prototipo - Enumerazione
La classe Enumerable fornisce un ampio set di metodi utili per le enumerazioni. Le enumerazioni sono oggetti che fungono da raccolta di valori.
I metodi di enumerazione vengono utilizzati principalmente per enumerare array e hash . Ci sono anche altri oggetti come ObjectRange e vari oggetti correlati a DOM o AJAX in cui è possibile utilizzare metodi di enumerazione.
Il parametro di contesto
Ogni metodo di Enumerable che accetta un iteratore accetta anche l'oggetto contesto come parametro successivo (opzionale). L'oggetto contesto è ciò a cui verrà associato l'iteratore, quindi il filethis la parola chiave al suo interno punterà all'oggetto.
var myObject = {};
['foo', 'bar', 'baz'].each(function(name, index) {
this[name] = index;
}, myObject); // we have specified the context
myObject;
Questo produrrà il seguente risultato:
Produzione
{ foo: 0, bar: 1, baz: 2}
Usarlo in modo efficiente
Quando hai bisogno di invocare lo stesso metodo su tutti gli elementi, vai con il metodo invoke () .
Quando è necessario recuperare la stessa proprietà su tutti gli elementi, utilizzare il metodo pluck () .
I metodi findAll / select recuperano tutti gli elementi che corrispondono a un determinato predicato. Al contrario, il metodo Reject () recupera tutti gli elementi che non corrispondono a un predicato. Nel caso specifico in cui hai bisogno di entrambi i set, puoi evitare di ripetere il ciclo due volte: usa il metodo partition () .
Ecco un elenco completo di tutti i metodi relativi a Enumerable.
Metodi enumerabili di prototipi
NOTE - Assicurati di avere almeno la versione 1.6 di prototype.js.
S.No. | Metodo e descrizione |
---|---|
1. | tutti() Determina se tutti gli elementi sono booleani equivalenti a true, direttamente o tramite il calcolo dall'iteratore fornito. |
2. | qualunque() Determina se almeno un elemento è booleano equivalente a true, direttamente o tramite il calcolo dall'iteratore fornito. |
3. | raccogliere() Restituisce i risultati dell'applicazione dell'iteratore a ogni elemento. Alias come map (). |
4. | rilevare () Trova il primo elemento per il quale l'iteratore restituisce true. Alias dal metodo find (). |
5. | ogni() Ti consente di iterare su tutti gli elementi in modo generico, quindi restituisce Enumerable, consentendo così la chiamata a catena. |
6. | eachSlice () Raggruppa gli elementi in blocchi in base a una determinata dimensione, con l'ultimo pezzo forse più piccolo. |
7. | inserimenti() Alias per il metodo toArray più generico. |
8. | trova() Trova il primo elemento per il quale l'iteratore restituisce true. Alias conveniente per detect (). |
9. | trova tutto() Restituisce tutti gli elementi per i quali l'iteratore ha restituito true. Alias come select (). |
10. | grep () Restituisce tutti gli elementi che corrispondono al filtro. Se viene fornito un iteratore, viene utilizzato per produrre il valore restituito per ogni elemento selezionato. |
11. | inGroupsOf () Raggruppa gli elementi in blocchi di dimensioni fisse, utilizzando un valore specifico per riempire l'ultimo blocco, se necessario. |
12. | includere() Determina se un determinato oggetto si trova o meno nell'Enumerable, in base all'operatore di confronto ==. Alias come membro (). |
13. | iniettare() Crea in modo incrementale un valore di risultato in base ai risultati successivi dell'iteratore. |
14. | invocare() Ottimizzazione per un caso d'uso comune di each () o collect (): invocare lo stesso metodo, con gli stessi potenziali argomenti, per tutti gli elementi. |
15. | carta geografica() Restituisce i risultati dell'applicazione dell'iteratore a ogni elemento. Alias di convenienza per collect (). |
16. | max () Restituisce l'elemento massimo (o il calcolo basato sugli elementi) o non definito se l'enumerazione è vuota. Gli elementi vengono confrontati direttamente o applicando prima l'iteratore e confrontando i valori restituiti. |
17. | membro() Determina se un determinato oggetto si trova o meno nell'Enumerable, in base all'operatore di confronto ==. Alias conveniente per include (). |
18. | min () Restituisce l'elemento minimo (o il calcolo basato sugli elementi) o undefined se l'enumerazione è vuota. Gli elementi vengono confrontati direttamente o applicando prima l'iteratore e confrontando i valori restituiti. |
19. | partizione() Divide gli elementi in due gruppi: quelli considerati veri e quelli considerati falsi. |
20. | cogliere () Ottimizzazione per un caso d'uso comune di collect (): recuperare la stessa proprietà per tutti gli elementi. Restituisce i valori della proprietà. |
21. | rifiutare() Restituisce tutti gli elementi per i quali l'iteratore ha restituito false. |
22. | Selezionare() Alias per il metodo findAll (). |
23. | taglia() Restituisce la dimensione dell'enumerazione. |
24. | ordina per() Fornisce una visualizzazione ordinata in modo personalizzato degli elementi in base ai criteri calcolati, per ogni elemento, dall'iteratore. |
25. | toArray () Restituisce una rappresentazione Array dell'enumerazione. Alias come voci (). |
26. | cerniera lampo() Zip insieme (pensa alla cerniera su un paio di pantaloni) 2 + sequenze, fornendo una serie di tuple. Ogni tupla contiene un valore per sequenza originale. |