Spread operator en iterators in JavaScript
De spread operator decomposeert elk object
dat een iterator heeft. Hierbij wordt
de standaard iterator gebruikt. Laten we
een voorbeeld bekijken. Stel we hebben
de volgende Map collectie:
javascriptlet map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Standaard zal decompositie resulteren in een tweedimensionale array:
javascriptlet arr = [...map];
console.log(arr); // [['a', 1], ['b', 2], ['c', 3]]
Om een array van sleutels te krijgen, decomponeren we de bijbehorende iterator:
javascriptlet arr = [...map.keys()];
console.log(arr); // ['a', 'b', 'c']
Op dezelfde manier doen we dit voor het verkrijgen van een array van waarden:
javascriptlet arr = [...map.values()];
console.log(arr); // [1, 2, 3]
Задание 1
Decomposeer het volgende object met spread:
javascriptlet obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]: function *(){
for (let key in this){
yield this[key];
}
}
};