2016-08-18 19 views
0

私はjavascriptに新しくなっており、実習用のこのテストを行うよう依頼されています。多次元配列の各数値を2倍にしてWebページに出力してください。これは一部の人にとっては単純なようですが、私は比較的新しいので、大したことは分かりません。多次元配列の各要素を2倍にするjavascriptの方法

 // Define a 2 dimensional (3 x 3) array 
     var array = [ 
      [1, 2, 3], 
      [4, 5, 6], 
      [7, 8, 9] 
     ]; 


     // TO DO: Double each number in the 2 dimensional array 

これは私が正しいトラックにいるかどうかはまだ分かりません。

 for (var i = 0; i < array[0].length + array.length; i++){ 
      for (var j = 0; j <array[0].length +array.length; j++){ 
      array[i] = array[i] * 2; 
       document.write(array[i][j]) 
       } 
      } 




     // Output results 
     document.write(array.toString(array)); 

     // Say how big the array is 
     document.write("<p>Table is " + array[0].length + " columns by " + array.length + " rows</p>"); 

     // Start the table 
     document.write("<table>"); 

     // Output the rows 
     document.write("<tr><td>" + array[0][0] + "</td><td>" + array[0][1] + "</td><td>" + array[0][2] + "</td></tr>"); 
     document.write("<tr><td>" + array[1][0] + "</td><td>" + array[1][1] + "</td><td>" + array[1][2] + "</td></tr>"); 
     document.write("<tr><td>" + array[2][0] + "</td><td>" + array[2][1] + "</td><td>" + array[2][2] + "</td></tr>"); 

     // End the table 
     document.write("</table>"); 

     // Optionally... make the above "output the rows" code work with 
     // any sized array 

    </script> 
</body> 

+0

は、スタックオーバーフローへようこそ。あなたはあなたの質問を改善することができます。 [最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)をお読みください。あなたのコードが何も特別な問題であなたの正確な問題を示すとき、あなたはボランティアしてあなたを助ける人たちに敬意を表しています。 – zhon

答えて

1

あなたはforループ.map()を使用してではなく、それを行うことができ、それ少しきれいになります。

var arr = [ 
    [1, 2, 3], 
    [4, 5, 6], 
    [7, 8, 9] 
]; 

arr = arr.map(function (sub_arr) { 
    return sub_arr.map(function (elem) { 
     return elem*2; 
    }); 
}); 

console.log(arr); 

または必要に応じてES6構文に

arr = arr.map(sub_arr => sub_arr.map(elem => elem*2)); 

console.log(arr); 

を使用して、私はむしろ、出力を生成するためにループを使用しますが、出力を生成するためのあなたのロジックが最善ではありませんが、それが正常に動作する必要があります[0] [0]、[0] [1]、[0] [2]などを静的にコーディングする場合よりもはるかに有効です。

1

var arrays = [ 
 
    [1, 2, 3], 
 
    [4, 5, 6], 
 
    [7, 8, 9] 
 
]; 
 
for (var array of arrays) 
 
    for (var item of array) logout.textContent += +item * 2 + ",";
<pre id="logout"></pre>

0

また、このようなforEachのでループすることができます

arr.forEach(item => item.forEach((elem, index, array) => {array[index] = 2 * elem})); 
関連する問題