Apa iterasi dalam javascript

Javascript Iterator adalah objek atau pola yang memungkinkan kita melintasi daftar atau koleksi. Iterator menentukan urutan dan mengimplementasikan protokol iterator yang mengembalikan objek dengan menggunakan metode next[] yang berisi nilai dan selesai. Nilai tersebut berisi nilai selanjutnya dari urutan iterator dan yang dilakukan adalah nilai boolean benar atau salah jika nilai terakhir dari urutan tersebut telah dikonsumsi maka benar jika tidak salah.  

Kami dapat memeriksa apakah ada entitas yang secara default dapat diubah atau tidak. Kami dapat memeriksa prototipenya dan dapat melihat apakah ia memiliki metode Symbol[Symbol. iterator] atau tidak.  

Dalam Array. prototipe Anda akan menemukan Symbol[Symbol. iterator]. ƒ nilai[] metode. Array secara default dapat diubah. Juga, String, Map & Set adalah built-in iterables karena objek prototipe mereka semuanya memiliki Simbol. metode iterator[]

Contoh. Contoh ini menggunakan simbol. pendekatan iterator untuk beralih ke array

javascript




    const array = [________79__80_______

a
b
c
0,
a
b
c
2
a
b
c
3

a
b
c
_4

    

a
b
c
6

a
b
c
_4

    

a
b
c
_9

a
b
c
_4

    

{value: 'item value', done: boolean}
2

    

{value: 'item value', done: boolean}
_4

a
b
c
_4

    

{value: 'item value', done: boolean}
2

    

{value: 'item value', done: boolean}
_9

a
b
c
_4

    

{value: 'item value', done: boolean}
2

    

var newIt = arr[Symbol.iterator]

newIt[]

//Because it does not properly bind
Uncaught TypeError: Cannot convert undefined or null to object 
//How we can fix this 
//var newIt = arr[Symbol.iterator].bind[arr]; 

newIt[]
Array Iterator { }
4

a
b
c
_4

    

{value: 'item value', done: boolean}
2

    ________15______9

    

0
1
2
3
4
1

    

0
1
2
3
4
3

    

0
1
2
3
4
5

0
1
2
3
4
_6

Keluaran

{"value":"a","done":false}
{"value":"b","done":false}
{"value":"c","done":false}
{"done":true}

Menggunakan untuk. dari loop, kita dapat mengulangi entitas apa pun [misalnya. objek] yang mengikuti protokol iterable. untuk. of loop akan mengeluarkan nilai yang dikembalikan dengan memanggil metode next[] setiap kali

Contoh. Contoh ini menggunakan for. dari loop untuk beralih ke array

javascript




    const array = [________79__80_______

a
b
c
0,
a
b
c
2
a
b
c
3

    ________76______7

    9     0

0
1
2
3
4
_6

Keluaran

a
b
c

Protokol yang dapat diubah. Objek harus mendefinisikan metode dengan 'Simbol. iterator’ kunci yang mengembalikan objek yang mengikuti protokol iterator. Objek harus menentukan metode 'selanjutnya' yang mengembalikan objek yang memiliki dua properti 'nilai' dan 'selesai'

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

const arr = [1, 2 ,3];

// calling the Symbol.iterator[] method
const arrIterator = arr[Symbol.iterator][];

// gives Array Iterator
console.log[arrIterator];

const str = 'hello';

// calling the Symbol.iterator[] method
const strIterator = str[Symbol.iterator][];

// gives String Iterator
console.log[strIterator];

Keluaran

Array Iterator {}
StringIterator {}

Di sini, memanggil metode

Array Iterator {}
StringIterator {}
_2 dari array dan string mengembalikan masing-masing iterator

Iterasi Melalui Iterables

Anda 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

const number = [ 1, 2, 3];

for [let n of  number[Symbol.iterator][]] {
    console.log[n];
}

Keluaran

1
2
3

Atau Anda cukup mengulang melalui array seperti ini

const number = [ 1, 2, 3];

for [let n of  number] {
    console.log[n];
}

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.
const number = [ 1, 2, 3];

for [let n of  number[Symbol.iterator][]] {
    console.log[n];
}
2 dan
const number = [ 1, 2, 3];

for [let n of  number[Symbol.iterator][]] {
    console.log[n];
}
3

  • nilai
    Properti
    const number = [ 1, 2, 3];
    
    for [let n of  number[Symbol.iterator][]] {
        console.log[n];
    }
    _2 dapat berupa tipe data apa pun dan mewakili nilai saat ini dalam urutan
  • selesai
    Properti
    const number = [ 1, 2, 3];
    
    for [let n of  number[Symbol.iterator][]] {
        console.log[n];
    }
    _3 adalah nilai boolean yang menunjukkan apakah iterasi selesai atau tidak. Jika iterasi tidak lengkap, properti
    const number = [ 1, 2, 3];
    
    for [let n of  number[Symbol.iterator][]] {
        console.log[n];
    }
    _3 disetel ke
    const number = [ 1, 2, 3];
    
    for [let n of  number[Symbol.iterator][]] {
        console.log[n];
    }
    7, selain itu disetel ke
    const number = [ 1, 2, 3];
    
    for [let n of  number[Symbol.iterator][]] {
        console.log[n];
    }
    8

Mari kita lihat contoh array iterables

const arr = ['h', 'e', 'l', 'l', 'o'];

let arrIterator = arr[Symbol.iterator][];

console.log[arrIterator.next[]]; // {value: "h", done: false}
console.log[arrIterator.next[]]; // {value: "e", done: false}
console.log[arrIterator.next[]]; // {value: "l", done: false}
console.log[arrIterator.next[]]; // {value: "l", done: false}
console.log[arrIterator.next[]]; // {value: "o", done: false}
console.log[arrIterator.next[]]; // {value: undefined, done: true}

Anda dapat memanggil

Array Iterator {}
StringIterator {}
_4 berulang kali untuk mengulangi objek
1
2
3
0

  • Metode
    Array Iterator {}
    StringIterator {}
    _4 mengembalikan objek dengan dua properti.
    const number = [ 1, 2, 3];
    
    for [let n of  number[Symbol.iterator][]] {
        console.log[n];
    }
    2 dan
    const number = [ 1, 2, 3];
    
    for [let n of  number[Symbol.iterator][]] {
        console.log[n];
    }
    3
  • Ketika metode
    Array Iterator {}
    StringIterator {}
    _4 mencapai akhir urutan, maka properti
    const number = [ 1, 2, 3];
    
    for [let n of  number[Symbol.iterator][]] {
        console.log[n];
    }
    3 disetel ke
    const number = [ 1, 2, 3];
    
    for [let n of  number[Symbol.iterator][]] {
        console.log[n];
    }
    7

Mari kita lihat bagaimana

Array Iterator {}
StringIterator {}
0 loop mengeksekusi program di atas. Sebagai contoh,

const arr = ['h', 'e', 'l', 'l', 'o'];

for [let i of arr] {
    console.log[i];
}

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
const number = [ 1, 2, 3];

for [let n of  number] {
    console.log[n];
}
_1, loop
Array Iterator {}
StringIterator {}
0 berakhir

Iterator yang Ditentukan Pengguna

Anda juga dapat membuat iterator Anda sendiri dan memanggil

Array Iterator {}
StringIterator {}
4 untuk mengakses elemen berikutnya. Sebagai contoh,

function displayElements[arr] {

    // to update the iteration
    let n = 0;

    return {

        // implementing the next[] function
        next[] {

            if[n < arr.length] {
                return {
                    value: arr[n++],
                    done: false
                }
            }

            return {
                value: undefined,
                done: true
            }
        }
    }
}

const arr = ['h', 'e', 'l', 'l', 'o'];

const arrIterator = displayElements[arr];

console.log[arrIterator.next[]];
console.log[arrIterator.next[]];
console.log[arrIterator.next[]];
console.log[arrIterator.next[]];
console.log[arrIterator.next[]];
console.log[arrIterator.next[]];

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

const number = [ 1, 2, 3];

for [let n of  number] {
    console.log[n];
}
_4 mengembalikan properti
const number = [ 1, 2, 3];

for [let n of  number[Symbol.iterator][]] {
    console.log[n];
}
2 dan
const number = [ 1, 2, 3];

for [let n of  number[Symbol.iterator][]] {
    console.log[n];
}
3

Apa itu iterasi dari sebuah loop?

Sebuah loop didefinisikan sebagai segmen kode yang dieksekusi berkali-kali. Iterasi mengacu pada proses di mana segmen kode dieksekusi sekali . Satu iterasi mengacu pada eksekusi 1 kali dari sebuah loop. Sebuah loop dapat mengalami banyak iterasi.

Apakah perulangan dan iterasi sama?

Perulangan dapat didefinisikan sebagai pengulangan proses yang sama berkali-kali hingga kondisi tertentu terpenuhi. Ini juga dikenal sebagai iterasi .

Apa itu iterator dan iterable dalam JavaScript?

JavaScript iterable adalah objek yang memiliki Simbol. iterator . Simbol. iterator adalah fungsi yang mengembalikan fungsi next[]. Iterable dapat diulangi dengan kode. untuk [const x dari iterable] { }

Apa saja 3 jenis konstruksi iterasi?

Kita akan mempelajari tiga bentuk iterasi. ekor-rekursi, while loop, dan for loop . Kami akan menggunakan tugas membalikkan daftar sebagai contoh untuk mengilustrasikan bagaimana berbagai bentuk iterasi terkait satu sama lain dan dengan rekursi.

Bài mới nhất

Chủ Đề