Capitolo 12. Iteratori e generatori
Questo lavoro è stato tradotto utilizzando l'AI. Siamo lieti di ricevere il tuo feedback e i tuoi commenti: translation-feedback@oreilly.com
Gli oggetti iterabili e i loro iteratori associati sono una caratteristica di ES6 che abbiamo visto più volte in questo libro. Gli array (compresi i TypedArray) sono iterabili, così come le stringhe e gli oggetti Set e Map. Ciò significa che il contenuto di queste strutture di dati può essere iterato (loop) con il ciclo for/of, come abbiamo visto nel §5.4.4:
letsum=0;for(letiof[1,2,3]){// Loop once for each of these valuessum+=i;}sum// => 6
Gli iteratori possono anche essere usati con l'operatore ... per espandere o "spalmare" un oggetto iterabile in un inizializzatore di array o in un'invocazione di funzione, come abbiamo visto nel §7.1.2:
letchars=[..."abcd"];// chars == ["a", "b", "c", "d"]letdata=[1,2,3,4,5];Math.max(...data)// => 5
Gli iteratori possono essere utilizzati con l'assegnazione di destrutturazione:
letpurpleHaze=Uint8Array.of(255,0,255,128);let[r,g,b,a]=purpleHaze;// a == 128
Quando si itera un oggetto Map, i valori restituiti sono coppie [key, value], che funzionano bene con l'assegnazione di destrutturazione in un ciclo for/of:
letm=newMap([["one",1],["two",2]]);for(let[k,v]ofm)console.log(k,v);// Logs 'one 1' and 'two 2'
Se vuoi iterare solo le chiavi o solo i valori piuttosto che le coppie, puoi utilizzare i metodi keys() e values() ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access