Iterable adalah antarmuka yang menentukan bahwa suatu objek dapat diakses jika mengimplementasikan metode yang kuncinya adalah [simbol. iterator] Show Beberapa struktur data bawaan yang menggunakan iterable adalah
Mengapa iterables ditambahkan di ES6?Tanpa iterable, sulit untuk mengelola iterasi pada data untuk berbagai jenis struktur data i. Iterasi pada array berbeda dengan iterasi pada objek Juga, ES6 telah memperkenalkan struktur data baru seperti set dan peta sehingga akan menjadi lebih rumit untuk menulis logika sesuai struktur data untuk iterasi Di sinilah antarmuka iterable lahir Ada dua hal yang perlu diperhatikan di sini
Iterator
Objek yang dikembalikan oleh antarmuka iterable juga merupakan objek iterator Objek Iterator memiliki metode Jadi selanjutnya pada pengembalian iterator {nilai. 'Nilai iterasi saat ini', selesai. 'benar salah'} Sekarang, karena kita sudah jelas dengan teorinya, mari kita lihat beberapa contoh Contoh larik sederhanaDi sini, dia memiliki array
Kita dapat membuat objek iterable dan iterator kita sendiri, mari kita lihat contohnya Contoh objek iterator khusus
Ini adalah cara kami mengulangi objek customIterable kami for (const x of customIterable) { Kode menjalankan lima langkah, dengan
Iterator dengan generator memiliki banyak daya dan dapat mengubah cara kita menulis kodeHarap pertimbangkan untuk memasukkan email Anda di sini jika Anda ingin ditambahkan ke daftar email saya dan ikuti saya di media untuk membaca lebih banyak artikel tentang javascript dan di github untuk melihat kode gila saya. Jika ada yang kurang jelas atau ingin menunjukkan sesuatu, silahkan berkomentar di bawah JavaScript menyediakan protokol untuk mengulang struktur data. Protokol ini menentukan bagaimana struktur data ini diulang menggunakan Array Iterator {} StringIterator {}0 loop Konsep protokol dapat dibagi menjadi Protokol iterable menyebutkan bahwa iterable harus memiliki kunci Array Iterator {} StringIterator {}1 Iterable JavaScript Struktur data yang memiliki metode Array Iterator {} StringIterator {}_2 disebut iterables. Misalnya, Array, String, Set, dll Iterator JavaScript Iterator adalah objek yang dikembalikan oleh metode Array Iterator {} StringIterator {}2 Protokol iterator menyediakan metode Array Iterator {} StringIterator {}_4 untuk mengakses setiap elemen iterable (struktur data) satu per satu Mari kita lihat contoh iterables yang memiliki Array Iterator {} StringIterator {}5
Keluaran Array Iterator {} StringIterator {}_ Di sini, memanggil metode Array Iterator {} StringIterator {}2 dari array dan string mengembalikan masing-masing iterator Iterasi Melalui IterablesAnda dapat menggunakan Array Iterator {} StringIterator {}0 loop untuk beralih melalui objek yang dapat diubah ini. Anda dapat mengulang melalui metode Array Iterator {} StringIterator {}_2 seperti ini
Keluaran 1 2 3 Atau Anda cukup mengulang melalui array seperti ini
Di sini, iterator memungkinkan Array Iterator {} StringIterator {}_0 loop untuk beralih ke array dan mengembalikan setiap nilai Metode JavaScript next()Objek iterator memiliki metode Array Iterator {} StringIterator {}_4 yang mengembalikan item berikutnya dalam urutan Metode Array Iterator {} StringIterator {}4 berisi dua properti. 2 dan 3
Mari kita lihat contoh array iterables
Anda dapat memanggil Array Iterator {} StringIterator {}4 berulang kali untuk mengulangi objek 1 2 30
Mari kita lihat bagaimana Array Iterator {} StringIterator {}_0 loop mengeksekusi program di atas. Misalnya,
Keluaran h e l l o Loop Array Iterator {} StringIterator {}0 melakukan hal yang persis sama dengan program di atas Loop Array Iterator {} StringIterator {}0 terus memanggil metode Array Iterator {} StringIterator {}4 pada iterator. Setelah mencapai 1, loop Array Iterator {} StringIterator {}0 berakhir Iterator yang Ditentukan PenggunaAnda juga dapat membuat iterator Anda sendiri dan memanggil Array Iterator {} StringIterator {}4 untuk mengakses elemen berikutnya. Misalnya,
Keluaran {value: "h", done: false} {value: "e", done: false} {value: "l", done: false} {value: "l", done: false} {value: "o", done: false} {value: undefined, done: true} Pada program di atas, kita telah membuat iterator kita sendiri. Fungsi _4 mengembalikan properti 2 dan 3 |