let data = [ { "testingNewValue": { "en-US": "hello" } }, { "testingNewValue": { "hi-IN": "hello " } }, { "testingNewValue": { "us": "dummy" } }, { "testingNewValue": { "xp-op-as": "value for testing" }, "locationField": { "en-US": { "lat": 19.28563, "lon": 72.8691 } } } ] const value = Object.fromEntries(Object.entries(data).map(el=>(el[1]=Object.values(el[1])[0], el))) console.log(value);Estoy tratando de obtener valor de los datos json usando object.fromEntries n object.entries pero no funciona según mis expectativas, ya que espero el valor como
{ { testingNewValue:"hello" }, { testingNewValue:"hello" }, { testingNewValue:"dummy" }, { testingNewValue:"value for testing", locationField:{ lat: 19.28563, lon: 72.8691 } } }pero obtengo "0", "1", "2", como puede ver en el fragmento de código, ya que quiero eliminar todo "en-US", "hi-In" y todo de los datos
¿Cómo puedo obtener mi expectativa?
Siempre que esté buscando una matriz (ya que su resultado esperado actual no es una estructura válida), debe tomar la totalidad de cada objeto interno y luego construir su nuevo objeto con fromEntries() después de mapear cada entrada, en lugar de luego, tomando la totalidad de su matriz de data completa, lo que hace que los índices aparezcan en su resultado actual. El siguiente código asume que tiene un valor dentro de cada objeto interno y que cada valor es un objeto:
const data = [ { "testingNewValue": { "en-US": "hello" } }, { "testingNewValue": { "hi-IN": "hello " } }, { "testingNewValue": { "us": "dummy" } }, { "testingNewValue": { "xp-op-as": "value for testing" }, "locationField": { "en-US": { "lat": 19.28563, "lon": 72.8691 } } } ]; const value = data.map(el=> Object.fromEntries(Object.entries(el).map(([k, v]) => [k, Object.values(v)[0]])) ); console.log(value);