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