Operatore spread e iteratori in JavaScript
L'operatore spread scompone qualsiasi oggetto
che possiede un iteratore. In questo caso verrà
preso l'iteratore predefinito. Diamo un'occhiata
con un esempio. Supponiamo di avere
la seguente collezione Map:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Per impostazione predefinita, la scomposizione risulterà in un array bidimensionale:
let arr = [...map];
console.log(arr); // [['a', 1], ['b', 2], ['c', 3]]
Per ottenere un array di chiavi, scomponiamo l'iteratore corrispondente:
let arr = [...map.keys()];
console.log(arr); // ['a', 'b', 'c']
Allo stesso modo procediamo per ottenere un array di valori:
let arr = [...map.values()];
console.log(arr); // [1, 2, 3]
Scomponi con lo spread il seguente oggetto:
let obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]: function *(){
for (let key in this){
yield this[key];
}
}
};