Tengo una pregunta.
Tengo una matriz como la siguiente
WorkList1 = ["Monday", "running", "Tuesday", "swimming", "Wednesday", "riding"]Espero cambiarlo como
WorkList2 = [{ "day": "Monday", "exercise": "running" }, { "day": "Tuesday", "exercise": "swimming" }, { "day": "Wednesday", "exercise": "riding" }]pero parece que tiene algún error, este es mi código.
const WorkList2 = []; const object = { "day": '', "exercise": '' }; for (let i = 0; i < WorkList1.length; i += 1) { if (i % 2 === 0) { object['day'] = i; } else { object['exercise'] = i; } WorkList2.push(object); }He leído un hilo sobre Array pero todavía tengo algunos problemas... ¿Alguien podría ayudarme a resolverlo? ¡Gracias!
1) Está asignando el valor como índice de matriz i
object['day'] = i; 2) Tendrá tantos objetos como en WorkList1 .
Tienes que omitir la inserción en cada índice impar. Lo que puede hacer es simplemente recorrer la matriz e incrementarla en 2 en lugar de 1 y enviar el valor de data como WorkList1[i] y exercise como WorkList1[i + 1]
const WorkList1 = [ "Monday", "running", "Tuesday", "swimming", "Wednesday", "riding", ]; const WorkList2 = []; for (let i = 0; i < WorkList1.length; i += 2) { WorkList2.push({ day: WorkList1[i], exercise: WorkList1[i + 1], }); } console.log(WorkList2);También puedes probar la segunda solución.
const WorkList1 = [ "Monday", "running", "Tuesday", "swimming", "Wednesday", "riding", ]; const WorkList2 = []; for (let i = 0; i < WorkList1.length; i += 1) { if (i % 2 === 0) { WorkList2.push({ day: WorkList1[i] }); } else { const lastObj = WorkList2[WorkList2.length - 1]; lastObj.exercise = WorkList1[i]; } } console.log(WorkList2);