为什么't array.push()在循环对象时不起作用?

Why doesn't array.push() work when looping object?

本文关键字:循环 对象 不起作用 push array 为什么      更新时间:2023-09-26

我正在用JavaScript做一个简单的数独求解器,并且有一个向数组添加新值的问题。我的脚本在for..in循环中生成随机长度数组。我已经用Chrome调试器测试了这个脚本,在那里我看到它循环正确的计数。我错过了JS对象的一些重要的点,还是.push()错误的方式来做这种事情?

this.areaSize = gridSideSize * gridSideSize;
//On progress -data structures
this.structures = 
{ 
    rows: new Array(),
    columns: new Array(),
    parents: new Array()
};
//Fill the data structures with the area object
for(var struct in this.structures)
{
    for(var a = 0; a < this.areaSize; a++)
    {
        var tmp = new PartialArea(this.areaSize);
        this.structures[struct].push(tmp);
    }
    console.log(struct.length);
}

Console告诉我,第一个数组有4项长,第二个和第三个数组有7项长。

struct属性名 rows(长度为4的字符串)、columns(7)和parents(7)。

记录this.structures[struct].length将得到预期的结果。