【发布时间】:2015-07-08 23:53:14
【问题描述】:
我有 2 个用于创建对象的 for 循环:
function newImage(){
image = {};
var temp = {}
for(i=0;i!=250;i++){
temp[i] = {};
}
image = temp;
for(i=0;i!=250;i++){
image[i] = temp;
}
}
这应该创建一个具有 250 个值的对象,每个值是一个包含 250 个对象的对象。但是,它会创建一个创建 250 个值的对象,用 250 个值填充这些值,然后循环一段时间。我还没有找到树的尽头,但它并没有冻结让我相信它是有限的。我已经检查了多达 50 次的迭代,并且它一直有效(它不会生成长树)。似乎它是在最后一次迭代中发生的。 Here's the full thing.
【问题讨论】:
-
嗯,很奇怪。它应该停在
i = 250。但也许i正在其他地方被更改并且它偷偷超过 250?通常,为了安全起见,人们将循环条件写为i < 250。 -
哦,好的。我确实这样做了,但它很早就停止了。但这不是问题。它正确地做到了这一点,但它无限地正确地做到了。
-
看起来
var temp = {}不见了; -
@asimes 不过应该没什么区别。
-
你做错了。你告诉循环在你的循环无限时间内添加一些东西,不包括第 250 个索引处的对象
标签: javascript arrays object for-loop