जावास्क्रिप्ट में इटरेबल ऑब्जेक्ट बनाना

आइए एक वास्तविक इटरेबल ऑब्जेक्ट बनाएं जिसे for-of लूप के माध्यम से पुनरावृत्त किया जा सके। इसके लिए ऑब्जेक्ट में Symbol.iterator में संबंधित फ़ंक्शन जोड़ना होगा।

आइए इसे लागू करें। मान लें कि हमारे पास निम्नलिखित ऑब्जेक्ट है:

javascriptlet obj = {
  a: 1,
  b: 2,
  c: 3,
};

Symbol.iterator में फ़ंक्शन जोड़ते हैं:

javascriptobj[Symbol.iterator] = function() {

}

इस फ़ंक्शन को जनरेटर में बदलें:

javascriptobj[Symbol.iterator] = function *() {

}

हमारे फ़ंक्शन के अंदर this ऑब्जेक्ट को ही संदर्भित करेगा:

javascriptobj[Symbol.iterator] = function *() {
  console.log(this); // ऑब्जेक्ट स्वयं
}

इटरेटर में ऑब्जेक्ट का पुनरावृत्ति करें:

javascriptobj[Symbol.iterator] = function *() {
  for (let key in this) {
    yield obj[key];
  }
}

बस, ऑब्जेक्ट को for-of लूप द्वारा पुनरावृत्त किया जा सकता है:

javascriptfor (let elem of obj) {
  console.log(elem); // 1, 2, 3
}
Задание 1

एक ऑब्जेक्ट बनाएं जिसे for-of लूप द्वारा पुनरावृत्त किया जा सके। लूप एलिमेंट में एक ऑब्जेक्ट आना चाहिए, जिसके key की में पुनरावृत्त ऑब्जेक्ट की कुंजी हो, और val की में मान हो। उदाहरण:

javascriptlet obj = {a: 1, b: 2, c: 3};

for (let elem of obj) {
  console.log(elem);
}

आउटपुट:

javascript{key: 'a', val: 1}
{key: 'b', val: 2}
{key: 'c', val: 3}