I would like to specify the while's condition as a variable, something like:
function doWhile(condition){
while(condition){
number++;
}
alert(number);
}
var number = 1;
doWhile(number < 10);
The only way to do this is using functions.
function doWhile(condition, action, undefined) {
var current = undefined;
// call your condition with the current value
while(condition(current)) {
// do something with the current value then update it
current = action(current);
}
return result;
}
var number = doWhile(function condition(number) {
// if the current value has no value yet continue
// if the current value is less than 10
return number === undefined || number < 10;
}, function action(number) {
// if the number has no value set it to 0
if (number === undefined) {
number = 0;
}
// increase it
return ++number;
});
console.log(number);
eval() in a loop? ;o) +1with. It took only a few minutes for OP to break his code, but was convinced that with was the solution anyway.return number === undefined || number < 10; Why do I need the number === undefined part from here?undefined. You can initialize result = 0 if you want. But then it defaults to 0 instead of undefined and wouldn't work nicely with strings or arrays. I can imagine this looking alien if your not used to passing first class functions around like this.