hw12_04_check_result .html 1.4 KB

1234567891011121314151617181920212223242526
  1. <header>Check result</header>
  2. <body>
  3. <script>
  4. function checkResult(original, validator) {
  5. function wrapper(...params) {
  6. let result = null;
  7. while (validator(result = original(...params)) == false);
  8. return result;
  9. }
  10. return wrapper;
  11. }
  12. //numberPrompt - это функция, которая будет запускать prompt до тех пор, пока пользователь не введет число
  13. const numberPrompt = checkResult(prompt, x => !isNaN(+x))
  14. let number = +numberPrompt("Введите число", "0") //параметры передаются насквозь в оригинал. Не забудьте передать this, используя call или apply
  15. //gamePrompt - это функция, которая будет запускать prompt до тех пор, пока пользователь не введет одно из слов 'камень', 'ножницы', 'бумага'
  16. const gamePrompt = checkResult(prompt, x => ['камень', 'ножницы', 'бумага'].includes(x.toLowerCase()))
  17. const turn = gamePrompt("Введите что то из списка: 'камень', 'ножницы', 'бумага'")
  18. // let a = Math.random();
  19. //const randomHigh = checkResult(a, x => (a >= 0.5));
  20. //console.log(randomHigh);
  21. </script>
  22. </body>