JavaScript හි spread ක්රියාකරු සහ iterators
spread ක්රියාකරු ඕනෑම iterator එකක් ඇති වස්තුවක්
විස්තීර්ණ කරයි. මෙහිදී පෙරනිමියෙන්
iterator එක ගනු ලැබේ. අපි උදාහරණයක්
බලමු. අප සතුව පහත එකතුව 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]]
යතුරු අරාවක් ලබා ගැනීම සඳහා අපි අදාළ iterator එක විස්තීර්ණ කරමු:
let arr = [...map.keys()];
console.log(arr); // ['a', 'b', 'c']
අගයන් අරාවක් ලබා ගැනීම සඳහාද එලෙසම කරමු:
let arr = [...map.values()];
console.log(arr); // [1, 2, 3]
පහත වස්තුව spread භාවිතයෙන් විස්තීර්ණ කරන්න:
let obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]: function *(){
for (let key in this){
yield this[key];
}
}
};