[英]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.