首页 > 解决方案 > 未捕获的类型错误:无法读取未定义的属性“长度”

问题描述

我面临着 Uncaught TypeError : Cannot read property 'length' of undefined in output console 使用 JavaScript 运行以下代码:

var field = [];

function setup()
{
    createCanvas(625, 625);
    field = generateField();    
}

function draw()
{
    background(51);

    for(var i=0; i<field.length; i++)
    {
        field[i].draw();
    }
}

function generateField()
{
    var f = [];
    for (var i = 0; i < 625; i++)
    {
        f.push(new Tile(i%25, Math.floor(i/25), "BARRIER"));
    }
}

错误出现在行中:for(var i=0; i < field.length; i++)

任何有关如何调试此问题的建议将不胜感激。

标签: javascriptfield

解决方案


您很可能只是缺少此函数中的 return 语句:

function generateField()
{
    var f = [];
    for (var i = 0; i < 625; i++)
    {
        f.push(new Tile(i%25, Math.floor(i/25), "BARRIER"));
    }
    return f;      // <-- this line
}

推荐阅读