const smallestDivisor = (num) => {
const iter = (counter, num) => { // counter это делитель, начинает с числа 2 и дальше +1
if ((num % counter) === 0) {// проверяет если делиться без остатка то возвращает делитель
return counter;
} else if (counter === 10) {// если так и не поделилось а мы перебрали все делители до 10 то дальше делить не имеет смысла и это число делиться только на себя возвращаем само число
return num;
} else {// в остальных случаях делаем все по новой но прибавляем к делителю +1
iter(counter+1, num);
}
}
return iter(2, num);
};
https://goo.gl/05Bxj7 ссылка на работу функции
Не знаю почему так сначала функция iter(2, 11);
вычисляет добавляя +1
iter( 3, 11);
iter( 4, 11);
iter( 5, 11);
iter( 6, 11);
iter( 7, 11);
iter( 8, 11);
ter( 9, 11);
iter( 10, 11);
return num; потому как мы перебрали все делители до 10 и дальше не имеет смысла, значит наименьший делитель само число
Но тут происходит странное
Return value 11
Return value undefined и все складывается обратно со значением Return value undefined Почему так?