2017-08-14 72 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

谢谢,这非常有帮助。 –