Javascript 二维数组生成无法按预期工作

标签 javascript arrays debugging

我是新来的,也是编程新手。总之,为了切入主题,我编写了以下程序,目的是在 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/

相关文章:

debugging - 无法从存储 "C:\Users\aleja\.android\debug.keystore": Detect premature EOF 读取 key AndroidDebugKey

javascript - jQuery thead 对象不能 append tr 对象

javascript - 替换数组状态中的元素(并受益于 ReactJS 快速渲染)

c - C 中的解码声明(数组和函数指针的组合)

arrays - 在使用递归的冒泡排序算法中记录交换次数?

c++ - 如何在构造函数中初始化 char 数组样式的字符串

c - 尝试取消引用通用指针。

javascript - 两个视觉上相同的文本与剪贴板中的文本有何不同?

javascript - 如何在完全加载之前隐藏网站内容?

c - 从3个坐标点求出三角形的面积,返回0