You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS嵌套for循环给嵌套数组赋值报Cannot set property '0' of undefined错误怎么解决

错误原因

你初始化的array仅第一层索引为0的位置是空数组,当外层循环变量i大于等于1时,array[i]的值为undefined,此时尝试访问并赋值array[i][j],就会触发TypeError: Cannot set property '0' of undefined报错。

修复方案
  • 方案1:保留现有全局array变量,在赋值每行元素前先初始化当前行数组
let array = [];
function generateField(width, height) {
    for (let i = 0; i < height; i++) {
        // 初始化当前行的空数组
        array[i] = [];
        for (let j = 0; j < width; j++) {
            array[i][j] = Math.floor(Math.random() * 3);
        };
    };
    console.log(array);
    return array;
}

generateField(5, 5);
  • 方案2:函数内部创建结果数组,避免全局变量污染,写法更简洁
function generateField(width, height) {
    const array = [];
    for (let i = 0; i < height; i++) {
        const row = [];
        for (let j = 0; j < width; j++) {
            row.push(Math.floor(Math.random() * 3));
        }
        array.push(row);
    }
    console.log(array);
    return array;
}

generateField(5, 5);

内容的提问来源于stack exchange,提问作者Thai To

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:36:03