2013-03-01 120 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,但那麼你會收到一個錯誤,而不是觸發無限循環。