2016-05-03 85 views
-7

是否有可能創建一個循環,但不使用內置的Javascript循環,如while,for和do?我也想避免遞歸來節省內存。Javascript - 是否可以使用函數進行循環?

我想它會涉及巧妙地調用一個函數,讓它退出,然後再次調用它,直到滿足條件。

編輯:添加例子

var i = 0; 
var condition = false; 
function loop() { 
    i++; 
    if (i >= 3) { 
     condition = true; 
    } 
} 
loop(); //somehow keep calling until condition is met. 
+0

要調用一個函數,請退出,然後再次調用它,您將需要...循環。 – ssube

+0

你的意思是像'array.forEach()'? – Barmar

+0

或者你在問其他語言的發電機嗎? – Barmar

回答

1

這裏是你如何能重複一些代碼有一個遞歸定時器功能:

(function repeat(n){ 
    if (!n) return; 
    console.log("do something"); 
    setTimeout(repeat, 0, n-1); 
})(4); 

相反的(優化的無尾)遞歸,有沒有累積的內存消耗這裏。 這種結構在某些情況下很有用。但只是避免forwhile關鍵字不會成爲其中之一。

+0

這看起來像遞歸的教科書示例。 –

+1

從問題:*「我也想避免遞歸來節省內存。」* – Blender

+0

這就是我一直在尋找的。我想要一個沒有累積內存消耗的重新運行的函數。 – ewack

相關問題