[英]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);
这样尝试
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);
在将问题发布到堆栈溢出之前,搜索在任何地方回答的相同类型的问题。 关于此算法有很多问题。
根据此答案,这是最少的代码行。
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.