Javascript 未捕获类型错误:无法读取属性';长度';未定义的

Javascript 未捕获类型错误:无法读取属性';长度';未定义的,javascript,field,Javascript,Field,我面临未捕获的类型错误:在使用JavaScript运行以下代码时,无法在输出控制台中读取未定义的的属性“length”: var field = []; function setup() { createCanvas(625, 625); field = generateField(); } function draw() { background(51); for(var i=0; i<field.length; i++) {

我面临未捕获的类型错误:在使用JavaScript运行以下代码时,无法在输出控制台中读取未定义的的属性“length”:

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"));
    }
}
var字段=[];
函数设置()
{
createCanvas(625625);
字段=generateField();
}
函数绘图()
{
背景(51);

对于(var i=0;i您很可能只是缺少此函数中的返回语句:

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
}
函数generateField()
{
var f=[];
对于(变量i=0;i<625;i++)
{
f、 推(新瓷砖(i%25,数学地板(i/25),“屏障”);
}

return f;//您缺少
generateField
函数中的
return
语句,如下所述:

没有
return
语句的
函数
将返回默认值。如果使用
new
关键字调用
构造函数
,则
default
值是其
参数的值。对于所有其他函数,默认的
return
值是
未定义的

在这种情况下,
generateField
被用作常规函数,它将返回
undefined
。因此,当尝试访问
字段
变量上的
长度
属性时,会抛出
未捕获类型错误。

字段=generateField();
但是
generateField
不返回任何内容