Ошибка отсутствие флага в функции в JavaScript

Пусть мы хотим сделать функцию, которая параметром будет принимать цифру и число, и проверять, есть ли заданная цифра в числе:

javascriptfunction func(needle, num) {
  // тут будет код
}

Вот так мы будем пользоваться нашей функцией:

javascriptconsole.log(func('3', '12345')); // выведет true

Некий программист написал решение этой задачи:

javascriptfunction func(needle, num) {
  for (let digit of num) {
    if (digit === needle) {
      return true;
    } else {
      return false;
    }
  }
}

Это решение, однако, работает некорректно. Дело в том, что в цикле написано условие, в котором в первой же итерации выполнится или один return, или второй, тем самым осуществив выход и из цикла, и из функции.

Перепишем наш код правильным образом, используя неявные флаги в функциях:

javascriptfunction func(needle, num) {
  for (let digit of num) {
    if (digit === needle) {
      return true;
    }
  }
  
  return false;
}