javascript - ¿cómo puedo reescribir un push con un map ejecutando un slice?
Me gustaría saber si es posible cambiar este bucle push por un simple map.
el objetivo es crear fragmentos a partir de un arreglo de objetos basado en el número de columnas y filas de una cuadrícula.
por ejemplo: si tengo dos filas y dos columnas, la matriz de objetos se divide en una matriz (chunks=[]) de la siguiente manera:
const row = 2;
const col = 2;
const pages = [
{id:'one', name:'page_1', active:false},
{id:'two', name:'page_2', active:false},
{id:'three', name:'page_2', active:false},
{id:'four', name:'page_4', active:false},
{id:'five', name:'page_5', active:false},
]
"Chunks" debería ir de esta manera:
let chunks = [
//grid 1 whit max col * row element
[
{id:'one', name:'page_1', active:false},
{id:'two', name:'page_2', active:false},
{id:'three', name:'page_2', active:false},
{id:'four', name:'page_4', active:false},
],
//grid 1 whit max col * row element
[
{id:'five', name:'page_5', active:false},
],
]
Lo he hecho de esta manera y funciona bien. Pero me pregunto si es posible editar y mejorar todo usando solo un map en lugar de un push.
const pages = [
{id:'one', name:'page_1', active:false},
{id:'two', name:'page_2', active:false},
{id:'three', name:'page_2', active:false},
{id:'four', name:'page_4', active:false},
{id:'five', name:'page_5', active:false},
]
const row = 2;
const col = 2;
let rowIndex = 0;
let chunkIndex = 0;
let chunks = [];
while (row !== rowIndex) {
chunks.push(page.slice(chunkIndex, chunkIndex + col));
chunkIndex += col;
rowIndex += 1;
}