Как i получает значение 3 если в массиве 4 элемента?
const users_account = [{
name: 'Вася',
login: 'Vasya123',
password: 'Vasya'
},
{
name: 'Петя',
login: 'Petya123',
password: 'Petya'
},
{
name: 'Дима',
login: 'Dima123',
password: 'Dima'
},
{
name: 'Тима',
login: 'Tima123',
password: 'Tima'
}
]
// const и let можно заменить на var если вы этого не проходили ещё
let user_asw = {
login: prompt('login'),
password: prompt('password')
}
for (let i = 0; i < users_account.length; i++) {
if (user_asw.login === users_account[i].login &&
user_asw.password === users_account[i].password) {
alert('Привет, ' + users_account[i].name);
break;
} else if ( ** i ** === users_account.length - 1 ** ) {
alert('Такого пользователя нету :( ');
}
}
Ответы (1 шт):
Автор решения: Vasily
→ Ссылка
Нумерация значений в массивах начинается с нуля:
const array = ["one", "two", "three", "four"]
console.log(array[0])
// one
console.log(array[3])
// four
console.log(array.length)
// 4
А i в Вашем цикле начинается с нуля let i = 0, который заканчиваться когда достигает длинны массива (4), т.е первый прогон i -> 0, второй i -> 1, третий i -> 2, четвертый i -> 3.
Если вычитать единицу:
} else if (i === users_account.length - 1) {
alert("Такого пользователя нету")
}
то i будет равно от 1 до 3, а длинна массива будет равна 4 - 1, т.е i === 3.
Вопрос в том какая именно проверка и на что Вам нужна.