首页 > 解决方案 > 如何通过执行切片用地图重写推送?

问题描述

我想知道是否可以使用简单的地图更改此推送循环。

目的是根据网格的列数和行数从对象数组中创建块。

例如:如果我有两行两列,则对象数组按以下方式划分为一个数组(块 = []):

 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;
    }

标签: javascriptangulartypescriptloopsgrid

解决方案


推荐阅读