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:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Standaard zal decompositie resulteren in een tweedimensionale array:
let arr = [...map];
console.log(arr); // [['a', 1], ['b', 2], ['c', 3]]
Om een array van sleutels te krijgen, decomponeren we de bijbehorende iterator:
let arr = [...map.keys()];
console.log(arr); // ['a', 'b', 'c']
Op dezelfde manier doen we dit voor het verkrijgen van een array van waarden:
let arr = [...map.values()];
console.log(arr); // [1, 2, 3]
Decomposeer het volgende object met spread:
let obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]: function *(){
for (let key in this){
yield this[key];
}
}
};