2013-03-01 123 views
0

我想,如果一个文件夹已经存在创造与年底上升数的新文件夹,但我在无限循环增量while循环变得无限

var i=1; 
while (myFolder.exists == true) { 
var myFolder = new Folder(wf+"/"+curFile+"_folder"+i) 
i++; 
}; 

结束任何帮助,将不胜感激。

+2

您不断重新声明myFolder并创建新文件夹(无论这些文件是什么)。 – j08691 2013-03-01 15:36:00

+0

结束循环的if条件在哪里? – vikasing 2013-03-01 15:36:52

+1

在while循环的第一次迭代之前声明了myFolder变量。 while循环的主体永远不会被执行,因为myFolder是null,并且会抛出一个错误。 – 2013-03-01 15:38:28

回答

1

看起来myFolder.exists是一种方法,而不是一个性质,所以你必须把它叫做:否则

while (myFolder.exists()) { 
    var myFolder = new Folder(wf + "/" + curFile + "_folder" + i); 
    i++; 
}; 

,您将得到评估方法本身,这的确是始终true在布尔上下文。

请注意,在循环内重新定义myFolder在这里可能不是问题。 Javascript中的循环与封闭代码具有相同的范围,并且该变量将被提升到该范围的开始处。正如jdwire所说,它最初可能是undefined,但那么你会收到一个错误,而不是触发无限循环。