繁体   English   中英

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

[英]Javascript - creating 2D array using every 6 elements of 1D array

我有一个数组,例如: [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循环,但是我永远无法获得正确的输出。 任何帮助,将不胜感激。

以下代码将输出[[1,2,3,4,5,6],[7,8,9,10,11,12],[13,14,15,16,17,18]]

var items = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18];
var size = 6, grouped = [];
for ( var i = 0 ; i < items.length ; i+= size ) {
    grouped.push(items.slice(i,i+size));
}
console.log(grouped);

JS Bin上的示例

这样尝试

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

在将问题发布到堆栈溢出之前,搜索在任何地方回答的相同类型的问题。 关于此算法有很多问题。

根据此答案,这是最少的代码行。

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]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM