簡體   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