Сообщение от AndriiS
|
Идея была в том, что первая и вторая функции проверяющие длину и наличие того, что ввел юзер возвращают в результате true или false. Потом, есть третья функция, которая принимает в себя одну из комбинаций (true/true, false/true, false/false, true/false) от двух первых и в зависимости от того, что подходит, потом она выдает return и соответствующий alert.
|
Именно так и работает пример в пост 2.
Запуск функций isLoginValid(login) и isLoginUnique(login, logins) в функции addLogin возвращает в нее результаты выполнения этих функций
Если очень хочется запускать их не в функции addLogin, а передавать в нее их результаты, то можно так:
<script>
"use strict";
const logins = ["Mango", "robotGoogles", "Poly", "Aj4x1sBozz", "qwerty123"]; //массив по-условию
let login = prompt("Введите новый логин", ""); //запрос на ввод нового логина
//проверка на количество символов
const isLoginValid = function (login) {
if (login.length < 4 || login.length > 16) {
alert('Ошибка! Логин должен быть от 4 до 16 символов');
return false;
}
return true;
};
//проверка на совпадения
const isLoginUnique = function (login, allLogins) {
if (allLogins.includes(login)) {
alert('Такой логин уже используется!');
return false;
}
return true;
};
// добавление логина в массив
const addLogin = function (login, parValid, parUniq) {
if (parValid && parUniq) {
alert('Логин успешно добавлен!');
logins.push(login);
}
};
//вызов функций
addLogin(login, isLoginValid(login), isLoginUnique(login, logins));
</script>