Czym są iteratorzy w JavaScript

Czym są iteratorzy w JavaScript
JavaScript oferuje kilka sposobów iteracji poprzez zbiór wartości obiektów, takich jak pętle. Jednakże, Iteratorzy są wprowadzane w JavaScript 1.7, który stanowi mechanizm dostosowania zachowania dla każdego I dla w pętli i integruje koncepcję iteracji z podstawowym językiem.

Jeśli chcesz dodać natywną funkcjonalność iteracyjną do dobrze zakapowanej i niestandardowej struktury danych, powinieneś użyć iteratorów JavaScript. Można to uznać za bardziej elegancki sposób standaryzacji niestandardowych obiektów.

W tym spisie omówi iteratorzy W JavaScript. Wykazamy również użycie iteratorów, iterables, metodę nowej () i iteratorów zdefiniowanych przez użytkownika. A więc zacznijmy!

Iteracja w JavaScript

W JavaScript, Iteracja jest procedurą, w której zbiór struktur lub instrukcji jest powtarzany w sekwencji dla z góry określonej liczby razy lub do momentu, gdy dodany warunek będzie prawdziwy. Możesz użyć Pętle do iteracji nad określonym zestawem instrukcji.

Na przykład zadeklarowaliśmy tablicę „rachunkowość”I z pomocą„Dla…„Pętla, będziemy iterować określoną tablicę:

Const Counting = [1, 2, 3];
dla (niech x liczenie)
konsola.log (x);

W wyniku tego każda wartość zostanie zwrócona i pokazana jako wyjście:

Teraz sprawdźmy metodę iteracji obiektu JavaScript. W tym celu po pierwsze, zadeklarujemy obiekt o nazwie „pracownik”A następnie wykorzystaj Dla… pętla do iteracji nad jego właściwościami:

const pracownik = nazwa: „Alex”, określenie: „menedżer”;
dla (const proportee)
konsola.log (prop);

Jak widać, dane wyjściowe powyższego kodu wyświetlało „Typeerror”Wiadomość, która stwierdza, że„pracownik„Obiekt nie jest Iterable. Dlaczego tak się dzieje? Spotkaliśmy typeerror, ponieważ Dla… pętli wymaga iteracyjnego obiektu do iteracji nad właściwościami obiektu.

Aby poradzić sobie z obecną sytuacją, możesz użyć protokołu iteracji JavaScript, który pomoże ci w tworzeniu obiektu do iteracji nad jego właściwościami.

Protokół iteracji JavaScript

JavaScript zapewnia protokół iteracji do iteracji nad obiektami. Ten protokół określa procedurę iteracji za pomocą „za… pętla. Iteratory JavaScript są podzielone na dwa elementy: „Iterable" I "Iteratorzy”:

  • Iterable: Iterable to obiekty, które implementują „iterator ()„Metoda iteracji i.mi. tablica lub ciąg.
  • Iteratorzy: Obiekt zwrócony przez „iterator ()„Metoda jest znana jako„Iterator". Po uzyskaniu iteratora możesz użyć „Następny()”Metoda sekwencyjnego dostępu do elementów iteracyjnych.

Na pierwszy rzut oka może być trudno zrozumieć użycie tych metod, więc sekwencyjnie przejdziemy przez każdą z nich w poniżej podanych sekcjach.

Metoda następny () w JavaScript

"Następny()”To metoda obiektu iteratora, która jest wywoływana do zwrócenia następnej wartości w sekwencji iteracji. Ta metoda obejmuje następujące dwie właściwości:

  • „„wartość„Właściwość reprezentuje bieżącą wartość w sekwencji iteracji i może być dowolnym typem danych.
  • „„zrobione„Własność służy do przedstawienia statusu iteracji, gdzie„FAŁSZ”Oznacza, że ​​iteracja nie jest kompletna i„PRAWDA”Wskazuje, że proces iteracji jest zakończony.

Zdefiniujmy niestandardowy iterator w JavaScript i uzyskaj dostęp do elementów tablicy sekwencyjnie za pomocą metody Next ().

Tworzenie iteratora zdefiniowanego przez użytkownika w JavaScript

JavaScript pozwala utworzyć iterator zdefiniowany przez użytkownika i wywołać „Następny()„Metoda dostępu do elementów obiektu iteracyjnego.

Tutaj zdefiniowaliśmy „Showelement ()„Metoda i zwróci„ ”wartość" I "zrobione„Własność iterowalnego obiektu, który jest akceptowany jako argument:

funkcja pokazuje (ARR)
Niech liczba = 0;
powrót
Następny()
if (liczba < array.length)
powrót
Wartość: tablica [numer ++],
zrobione: false

powrót
Wartość: niezdefiniowana,
zrobione: true


W następnym kroku stworzymy „szyk”A następnie przekazuj to„Showelement ()„Metoda jako argument. A później "ShowElements ()„Metoda zwróci obiekt iteracyjny, do którego będziemy przechowywać„Arriterator”:

const array = [„l”, „i”, „n”, „u”, „x”];
const arriterator = showElements (tablica);

Teraz, za każdym razem, gdy „Następny()„Metoda jest wywoływana z„Arriterator”, Wyświetli wartości elementu tablicy w sekwencji z zdefiniowaną„wartość" I "zrobione" nieruchomości:

konsola.log (arterator.Następny());
konsola.log (arterator.Następny());
konsola.log (arterator.Następny());
konsola.log (arterator.Następny());
konsola.log (arterator.Następny());
konsola.log (arterator.Następny());

Kiedy wszystkie elementy są iterowane, „wartość„Wartość właściwości zostanie ustawiona na„nieokreślony", z "zrobione„Nieruchomość jako„PRAWDA”:

Powyższe dane wyjściowe oznacza, że ​​pomyślnie utworzyliśmy i wykonaliśmy iterator zdefiniowany przez użytkownika w naszym programie za pomocą metody Next (). Teraz zrozummy również koncepcję iterablesów i miej jasne i głębokie zrozumienie Symbol.iterator () W JavaScript

Przykład: Tworzenie iteratorów z iterables za pomocą symbolu.metoda iterator () w JavaScript
W tym przykładzie po pierwsze, zadeklarujemy tablicę z następującymi trzema wartościami:

const arr1 = [„l”, „i”, „n”, „u”, „x”];

Następnie przywojemy „Symbol.iterator ()„Metoda, która zwróci iteralny obiekt i„Arriterator„Zabezpieczy swoją wartość:

const arriterator = arr1 [symbol.iterator] ();
konsola.log (arriterator);

Wykonanie powyższego programu wyświetli iteratory tablicy:

Przykład: za pomocą metody Next () przez iterabalny obiekt w JavaScript
Ten przykład pokaże użycie „Następny()„Metoda iteracji nad iteralnym obiektem. Aby to zrobić, po pierwsze, stworzymy „szyk”A następnie wywołać„Symbol.iterator ()„Metoda zwracania obiektu iterowalnego:

const array = [„l”, „i”, „n”, „u”, „x”];
niech arterator = tablica [symbol.iterator] ();

Wywołując „Następny()”Zwróci również obiekt o„wartość" I "zrobione" wartości nieruchomości:

konsola.log (arterator.Następny());
konsola.log (arterator.Następny());
konsola.log (arterator.Następny());
konsola.log (arterator.Następny());
konsola.log (arterator.Następny());
konsola.log (arterator.Następny());

Na końcu sekwencji iteracji „zrobione„Własność„ „Następny()„Metoda jest ustawiona na„FAŁSZ”:

Przykład: Iteracja za pomocą iterables z pętlą w JavaScript
symbol.iterator () Metoda jest automatycznie wywoływana przez… pętli. Jeśli chcesz to wywołać ręcznie, możesz użyć „chwila”Pętla do iteracji nad określonym obiektem iterabinem.

Na przykład, w poniższym przykładzie, użyjemy „chwila„Pętla do iteracji nad iterowalnymi obiektami zwróconymi przez„Symbol.iterator ()" metoda:

const array = [„l”, „i”, „n”, „u”, „x”];
niech arterator = tablica [symbol.iterator] ();
Niech Text = ""
while (true)
Const Result = arriterator.Następny();
if (wynik.gotowe) przerwa;
konsola.log („wartość:”+ wynik.wartość + „gotowe:” + wynik.zrobione);

Tutaj wyjście pokazuje zwrócony wynik z „wartość" I "zrobione„Właściwości iteratora:

Spójrz na poniższy schemat, aby zrozumieć związek między iterablesami, metodą Next () i iteratorami w JavaScript:

Chodziło o podstawowe użycie iteratorów w JavaScript. Możesz go dalej odkrywać zgodnie z preferencjami.

Wniosek

Iteratory w JavaScript są wykorzystywane do zapętlania nad sekwencją wartości obiektów zwróconych przez symbol.Metoda iterator (). Proces ten obejmuje również wdrożenie metody następnej (), która zwraca obiekt o wartości i właściwościach wykonanych, gdzie „wartość”Reprezentuje bieżącą wartość sekwencji i„zrobione”Określa, czy iteracja jest zakończona, czy nie. W tym spisie omówiono iteratory JavaScript za pomocą odpowiednich przykładów.