JavaScript

Не могу найти ошибку в коде.

Кто нибудь знает, почему после правильного введения пароля вместо одного пишет два раза: "подтвердите действие"?
Вообще всё корява написано !
А дважды срабатывает потому что второй алерт 33 у тебя за условием стоит и срабатывает всегда !
Тут if не очень удобен и красив я бы на твоём месте это сделал при помощи switch case

АС
Антон Синявкин
57 806
Лучший ответ
const users = [
 { login: 'admin', pass: 'qwerty' },
 { login: 'vasya', pass: '123' }
];
let usr = prompt('Логин: ');
if (usr) {
 usr = usr.toLowerCase();
 if (usr = users.find(u => u.login.toLowerCase() === usr)) {
  let psw = prompt('Пароль: ');
  if (psw && usr.pass === psw)
   alert('Доступ разрешен');
  else
   alert('В доступе отказано');
 }
 else
  alert('Пользователь с таким логином не найден');
}
Так как в самом конце у тебя есть alert(war), который выводит переменную war независимо от того, истинно ли какое-либо условие
let user = prompt( "Кто пришел?" );

if( /^админ$/i.test( user )) {
let pass = prompt( "Введите пароль: " );
if( pass === "черный властелин" ) {
alert( "Добро пожаловать!" );
}
else if( pass === null ) {
alert( "Отмена" );
}
else {
alert( "Неверный пароль" );
}
}
else if( user === null ) {
alert( "Отмена" );
}
else {
alert( "Я вас не знаю!" )
}

Код: https://jsfiddle.net/1nqy2h79/1/
Александр Фирсов Спасибо, всё получилось.
Компилятор же тебе напишет: после 60000 должен быть символ ;
Павел Круг
Павел Круг
1 355