Operador spread e iteradores en JavaScript
El operador spread descompone cualquier objeto
que tenga un iterador. En este caso, se tomará
el iterador por defecto. Veamos
un ejemplo. Supongamos que tenemos
la siguiente colección Map:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Por defecto, al descomponerlo se obtendrá un array bidimensional:
let arr = [...map];
console.log(arr); // [['a', 1], ['b', 2], ['c', 3]]
Para obtener un array de claves, descompongamos el iterador correspondiente:
let arr = [...map.keys()];
console.log(arr); // ['a', 'b', 'c']
De manera similar, procedamos para obtener un array de valores:
let arr = [...map.values()];
console.log(arr); // [1, 2, 3]
Descomponga con el operador spread el siguiente objeto:
let obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]: function *(){
for (let key in this){
yield this[key];
}
}
};