javascript - hur kan jag skriva om en push med en map genom att använda en slice?
Jag skulle vilja veta om det är möjligt att byta ut denna push-loop mot en enkel map.
målet är att skapa bitar från en matris av objekt baserat på antalet kolumner och rader i ett rutnät.
till exempel: om jag har två rader och två kolumner delas matrisen av objekt upp i en matris (chunks=[]) på följande sätt:
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" bör komma på detta sätt:
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},
],
]
Jag har gjort det på det här sättet och det fungerar bra. Men jag undrar om det är möjligt att redigera och förbättra allt genom att bara använda en karta istället för en 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;
}