Всякий раз, когда я выполняю этот фрагмент, console.log перед возвратом возвращает массив с 20-кратным значением 23. Однако console.log (Check (users, 0, 20)); возвращает только «undefined».Возвращаемое значение рекурсивной функции «undefined»
Что я делаю неправильно?
var users = [23, 23, 23, 23, 23, 23, 23, 23, 23, 23];
console.log(Check(users, 0, 20));
function Check(ids, counter, limit){
ids.push(23);
// Recursion
if (counter+1 < limit){
Check(ids, counter+1, limit);
}
else {
console.log(ids);
return ids;
}
}
Операция 'return' в блоке' if' означает 'undefined'. Это может быть проще поддерживать, если вы поместите один оператор 'return' в конце функции и установите возвращаемое значение на основе оператора' if' – Ian