首页 > 解决方案 > Javascript - 二维数组未捕获的类型错误

问题描述

我有一个带有嵌入式 js 函数的简单 html 页面,如下所示

<script>
function getSelectedPlaces(rowNum, arr) {
    var count = 0;
    for (let i = 0; i < 9; i++) {
        if (arr[rowNum][i] == 0) {
            continue;
        }
        ++count;
    }
    return count;
}

function start() {
    var arr = [
               [0, 0, 0, 1, 0, 0, 0, 0, 1]
               [1, 0, 0, 0, 0, 0, 1, 0, 0]
               [0, 0, 1, 1, 0, 1, 0, 0, 1]
               ];
    alert(getSelectedPlaces(0, arr));
}

</script>

<p style="color: green">
The content above was created with JavaScript.<br>
This content is created with <b>HTML</b>.<br>
You can edit JavaScript and HTML in the left part of the page
and click "<b>Run code</b>" to view results in the right part of the page.
</p>
<b>LESSON 4: CALL A JAVASCRIPT FUNCTION:</b>
<input type=button onClick="start()" value="Generate random number">

但是,我收到一条错误消息"JavaScript error: Uncaught TypeError: Cannot read property '0' of undefined on line 5",第 5 行在哪里if (arr[rowNum][i] == 0) {

寻求帮助,因为我是 JS 新手

标签: javascript

解决方案


您需要用逗号分隔子数组:

var arr = [
    [0, 0, 0, 1, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 1, 0, 0],
    [0, 0, 1, 1, 0, 1, 0, 0, 1]
];

推荐阅读