let userData = { myData: [{ id: 1, name: 'Russell', country: 'Windes' }, { id: 2, name: 'Smith', country: 'USA' } ], ownerData: [{ id: 3, name: 'Watson', country: 'Australia' }, { id: 4, name: 'Marcus', country: 'England' } ] }; let records = arrayMapped(userData) .then(res => console.log(res)); async function arrayMapped(user) { let best4 = []; user.myData.forEach(async(res, i) => { res.myTeam = []; user.ownerData.forEach(async(myTeam, j) => { res.myTeam = myTeam; }); best4.push(res); }); return best4; }array empujando comportarse weeded
Esperaba que el id 3 de myTeam fuera inferior a 1 id y el id de myTeam 4 fuera inferior a 2.
pero actualmente está tomando 4 id para todos cuál es el motivo por favor guíe
Gracias
Parece que desea iterar sobre las dos matrices en paralelo, por lo que no debe usar bucles anidados. Simplemente use el índice del bucle myData como índice en la matriz de datos de ownerData .
let userData = { myData: [{ id: 1, name: 'Russell', country: 'Windes' }, { id: 2, name: 'Smith', country: 'USA' } ], ownerData: [{ id: 3, name: 'Watson', country: 'Australia' }, { id: 4, name: 'Marcus', country: 'England' } ] }; let records = arrayMapped(userData) .then(res => console.log(res)); async function arrayMapped(user) { let best4 = []; user.myData.forEach(async(res, i) => { res.myTeam = user.ownerData[i]; best4.push(res); }); return best4; } Me doy cuenta de que tiene las funciones declaradas async , pero no hacen nada de forma asíncrona. Si las funciones reales lo hacen, consulte Uso de async/await con un bucle forEach