2017-08-14 13 views
-1

私は15個の数字を持つ5つのネストされた配列を含む配列を持っています。最初の配列に5つの配列のそれぞれの最初のエントリが含まれるように、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

ありがとう、これはとても役に立ちました。 –

関連する問題