Mencipta Objek Boleh-Iterasi dalam JavaScript
Mari kita cipta objek boleh-iterasi
sebenar yang boleh diulangi
melalui gelung for-of. Untuk ini,
objek perlu menambah fungsi yang sepadan
kepada Symbol.iterator.
Mari kita laksanakan. Katakan kita mempunyai objek berikut:
let obj = {
a: 1,
b: 2,
c: 3,
};
Tambahkan fungsi kepada Symbol.iterator:
obj[Symbol.iterator] = function() {
}
Jadikan fungsi ini sebagai penjana:
obj[Symbol.iterator] = function *() {
}
Di dalam fungsi kita, this akan merujuk
kepada objek itu sendiri:
obj[Symbol.iterator] = function *() {
console.log(this); // objek itu sendiri
}
Lancarkan lelaran objek dalam iterator:
obj[Symbol.iterator] = function *() {
for (let key in this) {
yield obj[key];
}
}
Selesai, objek kini boleh diulangi oleh gelung
for-of:
for (let elem of obj) {
console.log(elem); // 1, 2, 3
}
Buatkan objek yang boleh diulangi
oleh gelung for-of. Biarkan elemen
gelung menerima objek, di mana kunci key
akan menjadi kunci objek yang diulangi,
dan kunci val - nilainya.
Contoh:
let obj = {a: 1, b: 2, c: 3};
for (let elem of obj) {
console.log(elem);
}
Akan output:
{key: 'a', val: 1}
{key: 'b', val: 2}
{key: 'c', val: 3}