Tengo una matriz de JavaScript de la siguiente manera
let tasks =[ {id:1,level:1}, {id:1,level:2}, {id:1,level:3}, {id:2,level:1}, {id:2,level:2}, {id:3,level:1}]Quiero dividir esta matriz en
let tasks =[ [{id:1,level:1}, {id:1,level:2}, {id:1,level:3}], [{id:2,level:1}, {id:2,level:2}], [{id:3,level:1}] ]¿Como hacer esto?
Puedes hacerlo usando reduce helper, así:
const tasks =[ {id:1,level:1}, {id:1,level:2}, {id:1,level:3}, {id:2,level:1}, {id:2,level:2}, {id:3,level:1}]; const newTasks = tasks.reduce((acc, data)=> { const target = acc.find(subArr => subArr.find(item => item.id == data.id)); target ? target.push(data) : acc.push([data]); return acc; } , []); console.log(newTasks)Puede escribir un ciclo para iterar a través de esta matriz, empujar la mitad a a y la mitad a b .
a=[]; b=[]; for(int i=0;i<tasks.length;i++){ if(i<=tasks.lenght/2){ a.push(tasks[i]); }else{ b.push(tasks[i]); } }