为什么 array.push() 在循环对象时不起作用?
Why doesn't array.push() work when looping object?
我正在用 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 个项目,第二个和第三个有 7 个项目。
struct
是 属性 names rows
(这是一个长度为 string 4), columns
(7) 和 parents
(7).
记录 this.structures[struct].length
会给出预期的结果。
我正在用 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 个项目,第二个和第三个有 7 个项目。
struct
是 属性 names rows
(这是一个长度为 string 4), columns
(7) 和 parents
(7).
记录 this.structures[struct].length
会给出预期的结果。