@Lorelin
Student web

Почему не видит второй объект массива?

Всем привет. Есть такое задание:
Написать простую программу авторизации. Создать массив users, в котором каждый элемент – это объект типа “пользователь” со свойствами “имя”, “логин” и “пароль”. Программа должна запрашивать у пользователя логин и пароль при помощи prompt, после чего проходить по массиву users и искать в нем объект с такими же значениями. Если пользователь найден в массиве users, то программа должна поздороваться с ним по имени. В противном случае должна появиться ошибка авторизации.

Сделал вот так:
spoiler
let authorization = [
    {
        username: 'Ruslan',
        login: 'Lorelin',
        password: '12345'
    },

    {
        username: 'Margarita',
        login: 'ririka',
        password: '54321'
    }
];

let login = prompt('Введите логин');
let password = prompt('Введите пароль');

let user = null;

for (let i = 0; authorization.length; i++) {
    if (authorization[i].login == login && authorization[i].password == password) {
        user = authorization[i];
        alert('Привет, ' + user.username);
        break;
    }
    else {
        alert('Логин или пароль не верен.');
        break;
    }
}


Проблема в том, что программа выводит что пароль или логин не верный, если вводить данные второго объекта массива, если первого - то все ок. Если убрать else, то все работает нормально, в чем причина может быть?
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
Bavashi
@Bavashi
for (let i = 0; authorization.length; i++) {
		
    if (authorization[i].login == login && authorization[i].password == password) {
        user = authorization[i];
        alert('Привет, ' + user.username);
        break;
    }
    else if (i+1 === authorization.length) {
        alert('Логин или пароль не верен.');
        break;
    } else {
        continue;
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы