JavaScript में स्प्रेड ऑपरेटर और इटरेटर
spread ऑपरेटर किसी भी ऐसे ऑब्जेक्ट को विघटित कर देता है,
जिसमें एक इटरेटर होता है। इस मामले में
डिफ़ॉल्ट इटरेटर लिया जाएगा। आइए
एक उदाहरण पर नज़र डालें। मान लीजिए हमारे पास
निम्नलिखित Map संग्रह है:
javascriptlet map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
डिफ़ॉल्ट रूप से, विघटन करने पर एक द्वि-आयामी सरणी प्राप्त होगी:
javascriptlet arr = [...map];
console.log(arr); // [['a', 1], ['b', 2], ['c', 3]]
कुंजियों की एक सरणी प्राप्त करने के लिए, संबंधित इटरेटर को विघटित करें:
javascriptlet arr = [...map.keys()];
console.log(arr); // ['a', 'b', 'c']
मानों की एक सरणी प्राप्त करने के लिए इसी तरह आगे बढ़ें:
javascriptlet arr = [...map.values()];
console.log(arr); // [1, 2, 3]
Задание 1
निम्नलिखित ऑब्जेक्ट को स्प्रेड से विघटित करें:
javascriptlet obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]: function *(){
for (let key in this){
yield this[key];
}
}
};