Есть код, в нем 3 варианта написания функции по порядку валидаций - как вы думаете какая из них лучше?
"use strict";
const logins = ["Mango", "robotGoogles", "Poly", "Aj4x1sBozz", "qwerty123"];
const isLoginValid = function(login) {
login.split("");
if (login.length >= 4 && login.length <= 16) {
return true;
} else {
return false;
}
};
const isLoginUnique = (allLogins, login) => !allLogins.includes(login);
const addLogin = function(allLogins, login) {
// _______________
// Вариант 1 =====================================
// if (isLoginValid(login)) {
// if (isLoginUnique(allLogins, login)) {
// console.log("Логин успешно добавлен!");
// return logins.push(login);
// } else {
// return console.log("Такой логин уже используется!");
// }
// } else {
// return console.log("Ошибка! Логин должен быть от 4 до 16 символов");
// }
// ______________
// Вариант 2 =====================================
// if (!isLoginValid(login)) {
// console.log("Ошибка! Логин должен быть от 4 до 16 символов");
// return;
// } else if (!isLoginUnique(allLogins, login)) {
// console.log("Такой логин уже используется!");
// return;
// }
// logins.push(login) && console.log("Логин успешно добавлен!");
// __________________
// Вариант 3 =====================================
// if (isLoginValid(login) && isLoginUnique(allLogins, login)) {
// return logins.push(login) && console.log("Логин успешно добавлен!");
// } else if (!isLoginValid(login)) {
// return console.log("Ошибка! Логин должен быть от 4 до 16 символов");
// } else return console.log("Такой логин уже используется!");
};
// // Вызовы функции для проверки
addLogin(logins, "Ajax"); // 'Логин успешно добавлен!'
addLogin(logins, "robotGoogles"); // 'Такой логин уже используется!'
addLogin(logins, "Zod"); // 'Ошибка! Логин должен быть от 4 до 16 символов'
console.log(logins);