2017-08-14 75 views
-1

我有一個數組包含五個嵌套數組,每個數組有15個數字。有沒有辦法創建一個包含5個數字的15個嵌套數組的新數組,以便第一個數組包含來自五個數組中的每個數組的第一個條目?到目前爲止,我有:如何重新排列嵌套數組?

var allArrCookie = []; 
var allArrCookieByHour = []; 
function makeCol() { 
    for (var i = 0; i < allArrCookie.length; i++) { 
     for (var j = 0; j < allArrCookie[i].length; j++) { 
      allArrCookieByHour.push(allArrCookie); 
     } 
    } 
+1

有 - 使用普通的舊'for'循環。如果你被要求在一張紙上手動做到這一點,那麼完全一樣。 – zerkms

+1

您可以請[編輯]您的問題以顯示輸入數組和相應的期望輸出的示例? – nnnnnn

+0

@EliSpeigel請參閱https://stackoverflow.com/help/someone-answers – guest271314

回答

2

這是一個有趣的。它假定這個數組在任何維度都不是空的。你可以在這種情況下添加一個檢查。

鑑於這看起來像家庭作業,這個解決方案可以完成任務,但會被任何老師拋出。

var orig = [ 
    [101, 102, 103, 104, 105, 106], 
    [201, 202, 203, 204, 205, 206], 
    [301, 302, 303, 304, 305, 306] 
]; 

var rotated = orig[0].map((_,i) => orig.map(s => s[i])); 

/* 
output: 
[ 
    [101,201,301], 
    [102,202,302], 
    [103,203,303], 
    [104,204,304], 
    [105,205,305], 
    [106,206,306] 
] 
*/ 
+0

*「但會被任何老師扔掉」* - 爲什麼? – nnnnnn

+1

如果本練習是課程的一部分,它將成爲介紹性的「for循環和數組」部分的一部分。答案將需要循環,因爲這是一位教師將要測試的。 –

+0

謝謝,這非常有幫助。 –