De hecho, estoy obteniendo datos de la API del calendario de Google para los días festivos y quiero mostrarlos en el calendario. Para eso, primero obtengo los datos de la API de Google y luego trato de crear una nueva matriz de objetos que almacenarán los datos que necesitaba del calendario de la API de Google. El problema es que puedo crear una nueva matriz de objetos, pero no puedo agregar nuevos objetos para todos los datos que se obtienen de la API del calendario de Google. Intento usar loop pero no funciona.
Mi código
let google; useEffect(() => { axios.get('https://www.googleapis.com/calendar/v3/calendars/en.australian%23holiday%40group.v.calendar.google.com/events?key=personalkey') .then(res => { const data = res.data.items; console.log("Google api calendar data", data) for (let i = 0; i < data.length; i++) { data.map((item) => { google = { "id": item.id, "title": item.summary, "location": "Australia", "start": new Date(moment(item.start.date)), "end": new Date(moment(item.end.date)), "description": item.description, "durationday": 'Fulllday', "sameId": null } }) } console.log("goggle making array of object inside promise", google) }) .catch(err => { console.log('Google api calendar error', err) })})
En este momento, está recorriendo los elementos dos veces. for loop y map ambos recorren la matriz. map es lo que desea y se usa si desea modificar una matriz, pero requiere que devuelva cada objeto que desea colocar en la nueva matriz. Debería leer sobre cómo usar el mapa aquí array.prototype.map . Así que creo que lo que estás tratando de hacer es lo siguiente:
useEffect(() => { axios.get('https://www.googleapis.com/calendar/v3/calendars/en.australian%23holiday%40group.v.calendar.google.com/events?key=personalkey') .then(res => { const data = res.data.items.map((item) => { return { "id": item.id, "title": item.summary, "location": "Australia", "start": new Date(moment(item.start.date)), "end": new Date(moment(item.end.date)), "description": item.description, "durationday": 'Fulllday', "sameId": null } }) console.log("Your new array of modified objects here", data) }) .catch(err => { console.log('Google api calendar error', err) }) }, [])