Estoy aprendiendo sobre fetch() y estoy luchando para superar un problema. Tengo algunos datos JSON que estoy obteniendo, pero la clave es el "principal" de cada elemento, por ejemplo, se ve así:
products p1 description:"Lorem Ipsum" name:"some product" price:9.99 p2 description:"Dolar sit amet" name:"another product" price:15.5 Me gustaría .map() estos datos en una nueva matriz, como tal:
const newData= data.results.map(item => { return { id: item.id, name: item.name, description: item.description, price: item.price }; });Pero no entiendo cómo puedo recorrer cada elemento y guardar su ID sin una clave.
¿Alguien sabría cómo podría hacer esto?
Puede hacer esto con la función Object.entries() :
El método Object.entries() devuelve una matriz de pares de propiedades enumerables [clave, valor] con clave de cadena enumerables de un objeto determinado. Esto es lo mismo que iterar con un bucle for...in, excepto que un bucle for...in también enumera las propiedades en la cadena del prototipo.
Object.entries(data.products).map(([key, value]) => ({ id: key, name: value.name, description: value.description, price: value.price }));Dado que lo que ha publicado parece un objeto, en lugar de una matriz. Primero tienes que transformarlo en una matriz. Sugeriría usar Object.entries()
Object.entries(products).map(([key, value])=> { return { id: key, name: value.name, description: value.description, price: value.price } })