Задать вопрос
@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?
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 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 делает то же самое )) Зачем перебор?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы