Tengo un objeto que tiene algunos valores como "1", "5", "6", etc. y se refiere a "datos1", "datos2", "datos3", etc. como un objeto.
Estoy tratando de mapear este objeto, pero no está mapeando ni buscando una identificación. Aquí está el objeto del que estoy hablando:
[ { "1": "data1", "5": "data2", "6": "data3" } ]Y aquí está el objeto que necesito:
[ { id: "0", ids: "1", data: "data1" }, { id: "1", ids: "5", data: "data2" }, { id: "2", ids: "6", data: "data3" }, } ]¿Hay alguna forma de resolver esto automáticamente a partir de la respuesta de JavaScript?
Tengo esta respuesta en mi aplicación React y específicamente usando Refine framework (refine.dev) y cuando trato de mapear esta respuesta, está buscando una referencia. Intenté todas las respuestas posibles aquí: función de mapa para objetos (en lugar de matrices) , pero no tuve suerte en mi caso.
Tal vez la parte confusa es que hay un objeto dentro de una matriz:
const arr = [ { "1": "data1", "5": "data2", "6": "data3" } ] res = Object.entries(arr[0]).map( ([ids,data],index) => ({ id: index, ids, data }) ) console.log(res)¿Qué tal usar for...in en el objeto? No estoy seguro de si alguna vez tendrá más de 1 objeto en su matriz inicial, pero si saca el objeto, puede iterar sobre los valores clave.
const startingData = [ { "1": "data1", "5": "data2", "6": "data3" } ]; const objectToLoop = startingData[0]; const endingData = []; let i = 0; for(const entry in objectToLoop){ let itemToAdd = { id: i, ids: entry, data: objectToLoop[entry] }; endingData.push(itemToAdd); i++; } console.log(endingData);let obj = { "1": "data1", "5": "data2", "6": "data3" }; const keys = Object.keys(obj); let resultArray = []; for (let i = 0; i < keys.length; i++) { const tempObj = { id: i, ids: keys[i], data: obj[keys[i]] }; resultArray.push(tempObj); } console.log(resultArray);