我对javascript很新,并且被要求为apprentiship做这个测试,我还没有走得太远,只需要一些帮助......我所要做的就是将每个数字加倍多维数组并将其打印到网页上,对不起,如果对某些人来说这看起来很简单,我相对比较新,所以不要太了解。
// 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 :(得分:1)
你可以使用.map()
而不是for循环来做它,使它更清洁。
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 :(得分: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>
答案 2 :(得分:0)
你也可以像这样循环使用forEach:
arr.forEach(item => item.forEach((elem, index, array) => {array[index] = 2 * elem}));