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

时间:2016-10-19 23:37:25

标签: javascript arrays array-push

我正在使用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);
}

控制台告诉我,第一个数组长4个,第二个和第3个长7个项目。

1 个答案:

答案 0 :(得分:1)

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

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