@Edhunter

Почему функция возвращает результат вне цикла for?

Есть функция indexEmul, которая принимает в себя два параметра: arr(массив из чисел) и num(просто число). C помощью цикла for идет проверка параметра num с элементами из массива arr.

function indexEmul(arr, num) {
   for (let i = 0; i < arr.length; i++) {
      if (arr[i] === num) {
         return i
      }
   }

   return -1
}

let result = indexEmul([1, 2, 3, 4, 5], 24);
console.log(result)


Вопрос: Почему когда совпадения нет, то -1 возвращается только если return -1 вынесено за пределы цикла for? Разве не должно работать правило сначала if, а потом else?
  • Вопрос задан
  • 90 просмотров
Решения вопроса 2
mmmaaak
@mmmaaak
Верни return -1 в блок if/else и попробуй найти в своем массиве элемент равный 5
Ответ написан
Комментировать
@Raey
Потому что ты проверяешь каждый элемент массива, если добавить else в цикле, то он вернет -1 при первом несовпадении. (те i = 0, a[0] = 1, ты ищешь 24 или хоть что-то кроме 1, сразу вернет -1 и все, цикл закончен)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
array.findIndex делает то же самое )) Зачем перебор?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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