Javascript - 使用1D数组的每6个元素创建2D数组

时间:2015-11-18 02:28:53

标签: javascript arrays for-loop

我有一个数组例如: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]

我想把它变成以下内容:

[ [1,2,3,4,5,6],
[7,8,9,10,11,12],
[13,14,15,16,17,18] ]

基本上我需要对每6个元素进行分组,其中的数组应该是2D数组的元素 我没有很好地解释它,但这个例子应该是清楚的。

我一直在玩一些for循环,但我永远无法获得正确的输出。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

以下代码将输出cout <<

[[1,2,3,4,5,6],[7,8,9,10,11,12],[13,14,15,16,17,18]]

<强> Example on JS Bin

答案 1 :(得分:2)

试试这个

var data=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18];

var a=-1,temp=[];
data.forEach(function(item,index){
  if(index%6==0){
    temp[++a]=[];
  }
  temp[a].push(item);
});
console.log(temp);

<强> JSFIDDLE

答案 2 :(得分:0)

在发布问题之前进入堆栈溢出搜索,在任何地方回答相同类型的问题。这个算法有很多问题。

基于this answer这是最小代码行。

function arrayChunk(arr){   
    var i,j,chunk = 6, result = [];
    for (i=0,j=arr.length; i<j; i+=chunk)       
        result.push(arr.slice(i,i+chunk));

    return result;
}

你可以像

一样调用这个函数
arrayChunk([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]);

结果[[1,2,3,4,5,6],[7,8,9,10,11,12],[13,14,15,16,17,18]]