Функциональный JavaScriptФункции высшего порядкаmedium

Brute Force Password

Фраза brute force переводится как грубая сила. Как часто бывает в английском, существительное может использоваться как глагол: to brute force — сделать что-то с использованием грубой силы. По-русски говорят «забрутфорсить».

В контексте программирования чаще всего брут форс используется в контексте перебора различных вариантов, чтобы найти подходящий.

В этой задаче необходимо написать функцию, которая пытается угадать пароль пользователя, выполняя попытки логина с разными паролями.

Гарантируется, что длина пароля — ровно 4 символа, а состоять он может только из цифр (от 0 до 9) и больших латинских букв (от A до Z). Например, "0000", "ABCD" или "M1K3".

Функция bruteForce принимает два аргумента:

  • username — имя пользователя;
  • logIn — функция, которая «логинит» пользователя:
    • принимает строки username и password;
    • возвращает true, если пароль подошел, и false, если не подошел.

Функция bruteForce должна вернуть пароль пользователя, если такой пользователь есть, и null, если пароль не нашли.

Примеры вызовов

// Это пример фунции logIn (в тестах будет другая фунция) // В нашу функцию может прийти любая функция, проверяющая пароль function logIn(username, password) { return username === "max" && password === "0000"; } console.log(bruteForce("max", logIn)); // "0000"; console.log(bruteForce("alexa", logIn)); // null;