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:
javascriptlet 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:
javascriptlet arr = [...map];
console.log(arr); // [['a', 1], ['b', 2], ['c', 3]]
Per ottenere un array di chiavi, scomponiamo l'iteratore corrispondente:
javascriptlet arr = [...map.keys()];
console.log(arr); // ['a', 'b', 'c']
Allo stesso modo procediamo per ottenere un array di valori:
javascriptlet arr = [...map.values()];
console.log(arr); // [1, 2, 3]
Задание 1
Scomponi con lo spread il seguente oggetto:
javascriptlet obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]: function *(){
for (let key in this){
yield this[key];
}
}
};