我是新来的,也是编程新手。总之,为了切入主题,我编写了以下程序,目的是在 JavaScript 中生成二维数组,然后在表格中显示其元素。但是,在 i
行数组索引的值应该显示的地方(如第一行的 1
,然后是 2
第二行等),而是显示数字 10
。所以,如果有人能解释我做错了什么,我将不胜感激。这是代码:
<table border="1">
<script>
var array1 = [];
var array2 = [];
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
array2[j] = (i + 1) + "-" + (j + 1);
}
array1[i] = array2;
}
for (var i = 0; i < 10; i++) {
document.write("<tr>");
for (var j = 0; j < 10; j++) {
document.write("<td>" + array1[i][j] + "</td>");
}
document.write("</tr>");
}
</script>
</table>
最佳答案
您一次又一次地向 array1
添加相同的数组。相反,您每次都需要创建新数组。
var array1 = [];
for (var i = 0; i < 10; i++ ) {
var array2 = [];
for (var j = 0; j < 10; j++) {
array2[j] = (i+1) + "-" + (j+1);
}
array1[i]=array2;
}
但通常情况下,这将通过 Array.prototype.push
完成方法,像这样
var array1 = [];
for (var i = 0; i < 10; i++ ) {
var array2 = [];
for (var j = 0; j < 10; j++) {
array2.push((i+1) + "-" + (j+1));
}
array1.push(array2);
}
关于Javascript 二维数组生成无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22281315/