Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как передавать в функцию условие для цикла while? (https://javascript.ru/forum/misc/80029-kak-peredavat-v-funkciyu-uslovie-dlya-cikla-while.html)

jaroslav.tavgen 19.04.2020 13:45

Как передавать в функцию условие для цикла while?
 
Код, приведённый ниже, повторяет себя 3 раза:

let foo = 3;
while(foo < 10){
    console.log("Hi!");
    foo++;
}
foo = 12;
while(foo%8 != 0){
    console.log("Hi!");
    foo++;
}
foo = 25
while(foo <= 38){
    console.log("Hi!");
    foo++;
}

Это не по фен-шую соответствует принципу DRY.

Можно было бы выделить функцию:

function print_hi(foo, *condition*){
    while(condition){
        console.log("Hi!");
        foo++;
     }

и вызывать её так:

print_hi(3, foo < 10);
print_hi(12, foo%8 != 0);
print_hi(25, foo <= 38);

Как это сделать?

voraa 19.04.2020 14:47

function print_hi(foo, condition){
    while( condition (foo) ){
        console.log("Hi!");
        foo++;
     }
}


print_hi(3, x => x < 10);
print_hi(12, x =>  x%8 != 0);
print_hi(25, x =>  x <= 38);


Часовой пояс GMT +3, время: 05:28.