Javascript: переменная как условие - PullRequest
2 голосов
/ 15 мая 2011

Я бы хотел указать условие while как переменную, что-то вроде:

function doWhile(condition){
    while(condition){
       number++;
    }
    alert(number);
}

var number = 1;
doWhile(number < 10);

1 Ответ

4 голосов
/ 15 мая 2011

Единственный способ сделать это - использовать функции.

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);
...