2016-06-26 5 views
0

私はJavaScriptで次のような状況になります 入れ子になったループの最終結果を次のようにします: testArray [、[0,0,0、 0]、[1,1,1,1]、[2,2,2,2]、[3,3,3,3]] が押されてもうまく動作していないようです。 & jは、データベース駆動型であり、その値は実際には不明であるため、中間配列を作成したくありません。JavaScriptのforループの2次元配列の値をプッシュする

var testArray = [[3],[4]]; // or new Array(3,4); 

for (var row=0; row< 3; row++) 
    { 
    for (var j=0; j< 4; j++) 
     { 
     testArray[j,row].push(j); //? 
     testArray.splice([j,row],0,j); //? 
} 
} 
+0

'[[3]、[4]]' - これらの数字は、あなたが彼らが何を考えて行いません。おそらく[いくつかのドキュメントから始める](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)に役立つだろう。最初の配列リテラルを修正するだけでなく、各行(内側のループではなく外側のループ)に* new *配列を作成し、*/*行配列に列/数値を追加したいと思うでしょう。 – user2864740

+0

あなたのコードの行<3。それでは、あなたの出力にはどのようにインデックス3までの値が含まれていますか? – Teja

答えて

0

他の配列に配列をプッシュしたいと思います。これでやります。

var testArray = [ ]; // 
for (var row=0; row< 3; row++) { 
    var tempArr = [ ]; 
    for (var j=0; j< 4; j++){ 
     tempArr.push(row); 
    } 
    testArray.push(tempArr); 
} 
+0

はい、これはtestArray [、[0,1,2,3]、[[0,1,2,3]、[[0,1,2,3] [[0,1,2,3] ]] – Hagop

+0

サンプルデータと実際のコードを提供できますか?また、いくつかのサンプル入力データを提供し、サンプル出力も可能です。私は自分のコードを修正することができます – Teja

+0

私は私の答えを編集しました。今はうまくいくはずです。それが動作すれば、答えを確認して受け入れてください。 – Teja

0

コメントに記載されているように、コードは2次元配列を初期化しません。新しい配列を作成し、必要な "行"ごとに最上位の配列にプッシュする必要があります。各サブアレイには複数の方法でデータを入力することができます。どのようにアクセスしてそれらに「押し込む」かはあなた次第です。私は解決策をコード化し、コードで遊ぶことができるようにそれのためCodepenを作成しました:

http://codepen.io/jose8a/pen/KMabNw?editors=0011

var testArray = []; 

for (var row=0; row<= 3; row++) 
    { 
    testArray.push([]); 
    for (var j=0; j< 4; j++) 
     { 
     testArray[j, row].push(row); //? 
     //testArray.splice([j,row],0,j); //? 
} 
} 

console.log(testArray); 
+0

ありがとうございました。これは私の問題を解決! – Hagop

+0

それはあなたのために働いてうれしい!また、2つの回答のうち1つが問題を解決した場合、どちらがあなたの価値が高いかを受け入れることもできます。 – juan8a

+0

Juan8a残念ながら私はあなたの答えを受け入れるには十分な評判がありません。あなたの答えは正確で速かった。私はインターネットをgoogledし、ループ内のjs多次元配列に十分な情報がありませんでした – Hagop

0

ES6 Array.fill機能を使って必要な配列を取得するための「新しい」アプローチがあります:

var testArray = [3,4], result = []; 
for (var i = 0; i < testArray[1]; i++) { 
    result.push([].fill.call(new Array(4), i)); 
} 

console.log(JSON.stringify(result)); // [[0,0,0,0],[1,1,1,1],[2,2,2,2],[3,3,3,3]] 

Array.prototype.fill()

関連する問題