首页 > 解决方案 > 将单个数组转换为二维数组乘以 6

问题描述

我正在尝试将我的单个数组转换并合并为二维数组。我为此使用地图,但我无法实现我想要的输出。我可以就如何实现这一目标提出任何建议吗?

数据如下:

          var singelArr = ['a','b','c','d','e','f','a','b','c','d','e','f','a','b','c','d','e','f'];

          var doubleArr = [
                                ['','','','','',''],
                                ['','','','','',''],
                                ['','','','','',''],
                                ['','','','','',''],
                                ['','','','','',''],

                          ]

现在我的预期输出是:

 output = [
           ['a','b','c','d','e','f'],
           ['b','c','d','e','a','f'],
           ['b','c','d','e','a','f'],
           ['','','','','',''],
           ['','','','','','']

 ]; 

到目前为止我所做的是https://jsfiddle.net/jc3v25bs/。我可以将数据元素显示为 6,但问题是我不确定如何将它合并到我的doubleArr变量中。我也更喜欢循环更快的东西。

任何想法都非常感谢。谢谢你。

标签: javascript

解决方案


您可以使用该slice()函数拆分第一个数组。然后,您可以通过将结果与第二个数组的最后一部分连接起来来创建输出。

let singleArr = ['a','b','c','d','e','f','a','b','c','d','e','f','a','b','c','d','e','f'];

let doubleArr = [
  ['','','','','',''],
  ['','','','','',''],
  ['','','','','',''],
  ['','','','','',''],
  ['','','','','',''],

];

let chunkedArr = [];
for(i=0,j=0; i<singleArr.length; i+=6, j++){
    chunkedArr[j] = singleArr.slice(i, i+6);
}
let output = chunkedArr.concat(doubleArr.slice(chunkedArr.length));

console.log(output);


推荐阅读