जावास्क्रिप्ट में इटरेबल ऑब्जेक्ट बनाना
आइए एक वास्तविक इटरेबल ऑब्जेक्ट बनाएं
जिसे for-of लूप के माध्यम से
पुनरावृत्त किया जा सके। इसके लिए
ऑब्जेक्ट में Symbol.iterator में
संबंधित फ़ंक्शन जोड़ना होगा।
आइए इसे लागू करें। मान लें कि हमारे पास निम्नलिखित ऑब्जेक्ट है:
let obj = {
a: 1,
b: 2,
c: 3,
};
Symbol.iterator में फ़ंक्शन जोड़ते हैं:
obj[Symbol.iterator] = function() {
}
इस फ़ंक्शन को जनरेटर में बदलें:
obj[Symbol.iterator] = function *() {
}
हमारे फ़ंक्शन के अंदर this ऑब्जेक्ट
को ही संदर्भित करेगा:
obj[Symbol.iterator] = function *() {
console.log(this); // ऑब्जेक्ट स्वयं
}
इटरेटर में ऑब्जेक्ट का पुनरावृत्ति करें:
obj[Symbol.iterator] = function *() {
for (let key in this) {
yield obj[key];
}
}
बस, ऑब्जेक्ट को for-of लूप
द्वारा पुनरावृत्त किया जा सकता है:
for (let elem of obj) {
console.log(elem); // 1, 2, 3
}
एक ऑब्जेक्ट बनाएं जिसे for-of
लूप द्वारा पुनरावृत्त किया जा सके।
लूप एलिमेंट में एक ऑब्जेक्ट आना चाहिए,
जिसके key की में पुनरावृत्त ऑब्जेक्ट
की कुंजी हो, और val की में मान हो।
उदाहरण:
let obj = {a: 1, b: 2, c: 3};
for (let elem of obj) {
console.log(elem);
}
आउटपुट:
{key: 'a', val: 1}
{key: 'b', val: 2}
{key: 'c', val: 3}