JavaScript හි spread ක්‍රියාකරු සහ iterators

spread ක්‍රියාකරු ඕනෑම iterator එකක් ඇති වස්තුවක් විස්තීර්ණ කරයි. මෙහිදී පෙරනිමියෙන් iterator එක ගනු ලැබේ. අපි උදාහරණයක් බලමු. අප සතුව පහත එකතුව 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]]

යතුරු අරාවක් ලබා ගැනීම සඳහා අපි අදාළ iterator එක විස්තීර්ණ කරමු:

javascriptlet arr = [...map.keys()];
console.log(arr); // ['a', 'b', 'c']

අගයන් අරාවක් ලබා ගැනීම සඳහාද එලෙසම කරමු:

javascriptlet arr = [...map.values()];
console.log(arr); // [1, 2, 3]
Задание 1

පහත වස්තුව spread භාවිතයෙන් විස්තීර්ණ කරන්න:

javascriptlet obj = {
  a: 1,
  b: 2,
  c: 3,
  [Symbol.iterator]: function *(){
    for (let key in this){
      yield this[key];
    }
  }
};