Привет! Сегодня мне нужно было решить задачку на js и я долго над ней просидел. Сейчас я прохожу функции и массивы.
Вот условие задачи:
Напишите программу, которая будет находить последний индекс элемента в массиве.
Массив записан в переменную numbers.
Элемент, последний индекс которого надо найти, записан в переменную number.
Создайте переменную lastIndex и записывайте в неё последний индекс числа number. Если числа number в массиве нет, переменная lastIndex должна быть равна -1.
Выданный код:
var numbers = [2, 4, 7, 4, 7, 2];
var number = 4;
Как я понимаю решение:
Шаг 1. Создал переменную lastIndex сразу со значением, если нет нужного элемента массива:
var lastIndex = -1;
Шаг 2. После этого начинал работать с циклом. Цикл у нас будет со вложенным условием.
for (var i = numbers.length - 1; i >= 0; i--) {}
Здесь грубо говоря мы задаем "i" , который равен номеру последнего элемента массива. Далее условие повторения цикла - если "i" больше или равен нулю (ноль - это номер первого элемента массива). Если условие выполняется, то в после выполнения цикла значение "i" уменьшится на 1 пункт.
Шаг 3. Добавляю условие внутрь цикла:
for (var i = numbers.length - 1; i >= 0; i--) {
if (numbers[i] === number) {
lastIndex = i;
break;
}
}
Что тут и куда: Задал условие, что если элемент массива под под номером numbers[i] равен (===) заданному числу (number), то в lastIndex записывается значение "i" и все прерывается (break).
Вот так, все работает. Весь код целиком:
var numbers = [2, 4, 7, 4, 7, 2];
var number = 4;
var lastIndex = -1;
for (var i = numbers.length - 1; i >= 0; i--) {
if (numbers[i] === number) {
lastIndex = i;
break;
}
}
Может быть вы сможете подсказать другой способ решения задачи на js?
Буду благодарен лайку и комментариям) Спасибо. )