Quiero que mi Javascript use este archivo JSON:
{ "Campgrounds": [ { "Name": "Coyote lake", "Address": "123 lake dr, gilroy ca 95111", "SiteCount": 50, "Funfact": "Nice lake, cows, screaming hogs" }, { "Name": "Uvas reservoir", "Address": "123 lake dr, San jose ca 95111", "SiteCount": 50, "Funfact": "Nice waterfalls, trails, tall trees" }, { "Name": "Mount Madonna", "Address": "123 lake dr, Santa cruz ca 95111", "SiteCount": 50, "Funfact": "Nice views, trails, tall trees" }, { "Name": "Santa Cruz Beach", "Address": "1230 lake dr, Santa cruz ca 95111", "SiteCount": 50, "Funfact": "Ocean views, trails, tall trees" } ] }y luego cree una nueva variable de objeto en js que se verá así:
{ "Campgrounds": { "Coyote lake" : { "Name": "Coyote lake", "Address": "123 lake dr, gilroy ca 95111", "SiteCount": 50, "Funfact": "Nice lake, cows, screaming hogs" }, "Uvas reservoir" : { "Name": "Uvas reservoir", "Address": "123 lake dr, San jose ca 95111", "SiteCount": 50, "Funfact": "Nice waterfalls, trails, tall trees" }, "Mount Madonna" : { "Name": "Mount Madonna", "Address": "123 lake dr, Santa cruz ca 95111", "SiteCount": 50, "Funfact": "Nice views, trails, tall trees" }, "Santa Cruz Beach" : { "Name": "Santa Cruz Beach", "Address": "1230 lake dr, Santa cruz ca 95111", "SiteCount": 50, "Funfact": "Ocean views, trails, tall trees" } } }Esencialmente, quiero tomar el contenido de la matriz y convertirlo en formato de nombre y valor. es posible? No he encontrado una manera de hacer esto.
Suponiendo que su objeto está en la variable de data , podría usar Array.prototype.reduce para convertirlo al formato deseado:
const formattedData = { ...data, Campgrounds: data.Campgrounds.reduce( (carry, item) => ({ ...carry, [item.Name]: item, }), {} ), };¿Tiene sentido? No parece el más elegante de los formatos.