Проверка ввода не дает добавить пользователя. Что-то не так в функции ValidateUser.
Нужен свежий взгляд, у меня уже мозг потек
var usersData = [];
function ValidateUser (id, name, email) {
//language=JSRegexp
const nameRegExp = /[a-zA-Z]+/g;
const emailRegExp = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/;
const idCheck = (id > usersData.length || id < usersData[0] || id === undefined || id === "");
const nameCheck = (name === undefined || !(name.match(nameRegExp)));
const emailCheck = (email === undefined || !(email.match(emailRegExp)));
return idCheck;
return nameCheck;
return emailCheck
}
function AddUser (name, email) {
if (ValidateUser()) {
return false
} else {
usersData.push({
id: GetNewUserId(),
name: name,
email: email
});
return true;
}
}
function GetNewUserId () {
if (usersData.id === 0) {
usersData.id = 1;
} else {
var maxId = usersData.reduce((max, item) => item.id > max ? item.id : max, 0);
}
return maxId + 1;
}
function UpdateUser (id, name, email) {
if (ValidateUser()) {
return false;
}
else {
for (var index = 0; index < usersData.length; index++) {
if (usersData[index].id === id) {
usersData[index].email = email;
usersData[index].name = name;
break;
return true;
}
}
}
}
function DeleteUser (id) {
if (ValidateUser()) {
return false;
}
else {
for (var index = 0; index < usersData.length; index++) {
if (usersData[index].id === id) {
usersData.splice(index, 1);
return true;
}
}
}
}
function ShowUsers () {
usersData.forEach(function (item) {
console.log(item);
});
}