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:
javascriptlet map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Por defecto, al descomponerlo se obtendrá un array bidimensional:
javascriptlet arr = [...map];
console.log(arr); // [['a', 1], ['b', 2], ['c', 3]]
Para obtener un array de claves, descompongamos el iterador correspondiente:
javascriptlet arr = [...map.keys()];
console.log(arr); // ['a', 'b', 'c']
De manera similar, procedamos para obtener un array de valores:
javascriptlet arr = [...map.values()];
console.log(arr); // [1, 2, 3]
Задание 1
Descomponga con el operador spread el siguiente objeto:
javascriptlet obj = {
a: 1,
b: 2,
c: 3,
[Symbol.iterator]: function *(){
for (let key in this){
yield this[key];
}
}
};