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

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

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

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

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

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

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

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

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

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