Tengo una matriz de objetos así:
let data = [{Date : null, id: null}, {Date : null, id: null}, {Date : null, id: null}]Y necesito asignar un valor a cada propiedad de Fecha. lo hice con un bucle
let dates = ['2022-01-01','2022-02-02','2020-02-03'] for (let i=0; i<dates.length; i++) { data[i].Date = dates[i] }Pero me preguntaba si es posible hacerlo con una línea. Estaba tratando de usar algo como esto, pero no funcionó.
data.map((i)=>{ data[i].Date = dates[i] }) Porque i tengo índice sino un valor. ¿Es posible usar i como iterador de índice en el mapa?
map() crea una nueva matriz, si desea modificar data , use forEach para que pueda obtener el índice actual para encontrar el valor deseado en las dates
data.forEach((d, i) => d.Date = dates[i]); let data = [{Date : null, id: null}, {Date : null, id: null}, {Date : null, id: null}]; let dates = ['2022-01-01','2022-02-02','2020-02-03']; data.forEach((d, i) => d.Date = dates[i]); console.log(data);Puedes hacerlo más funcional, de una manera más limpia usando map...
let data = [{Date : null, id: null}, {Date : null, id: null}, {Date : null, id: null}]; let dates = ['2022-01-01','2022-02-02','2020-02-03']; const newData = data.map((a, i) => ({Date : dates[i], id : a.id})); console.log(newData);