difundir operador convirtiendo objects a matriz

Estoy tratando de convertir una estructura de datos como esta:

data = { 0:{A:a}, 1:{B:b}, 2:{C:c}, } 

en una estructura como esta:

 [ {0:{A:a}}, {1:{B:b}}, {2:{C:c}}, ] 

Usando el operador de propagación de esta manera: [...data] devuelve cualquier matriz vacía.

También probé [{...data}]

¿Hay alguna manera de usar el operador de difusión para get el resultado deseado? Además, ¿por qué no funciona este enfoque?

No funciona porque de acuerdo con los documentos de MDN

"La propiedad Rest / Spread para la propuesta de ECMAScript (etapa 3) agrega properties de dispersión a los literales de objects. Copia las properties enumerables de un object proporcionado en un object nuevo ".

Sin embargo, puedes hacer lo que tratas de hacer muy fácilmente con Object.keys().map() .

 var data = { 0:{A:"a"}, 1:{B:"b"}, 2:{C:"c"}, } var result = Object.keys(data).map(function (key) { return { [key]: data[key] }; }); console.log(result); 

Puede usar Object.entries para get pares de [key, valor] y asignarlos a una matriz de objects usando nombres de propiedad calculados :

 const data = { 0:{A: 'a'}, 1:{B: 'b'}, 2:{C: 'c'}, length: 3 }; const result = Object.entries(data).map(([key, value]) => ({ [key]: value })); console.log(result); 

Me temo que no se puede utilizar para propagar el operador como en su ejemplo, sin embargo, puede producir la salida deseada con networkinguce .

 data = { 0:{A:'a'}, 1:{B:'b'}, 2:{C:'c'}, } let resArr = Object.keys(data).networkinguce((arr, e) => { arr.push({[e]: data[e]}); return arr; }, []); console.log(resArr);