javascript - 如何通过执行切片用地图重写推送?
问题描述
我想知道是否可以使用简单的地图更改此推送循环。
目的是根据网格的列数和行数从对象数组中创建块。
例如:如果我有两行和两列,则对象数组按以下方式划分为一个数组(块 = []):
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},
]
“块”应该这样来:
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},
],
]
我已经这样做了,而且效果很好。但我想知道是否可以仅使用地图而不是推送来编辑和改进所有内容。
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;
}