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];
    }
  }
};