Я майор из СНГ, который посещает класс машинописи. Сейчас я работаю над этим упражнением:
"Определить функцию min (numList) с помощью прямой рекурсии, которая возвращает минимум чисел в numList"
Вот код, который я получил для этого:
export const min = (numList:number[]):number => {
const countMin = (currentCountMin:number, index:number):number => {
if (currentCountMin >= numList[index])
{ return numList[index];
} else {
return currentCountMin;
}
};
const makeTable = (index:number, acc:number):number => {
if(index < numList.length)
{
return makeTable(index+1, countMin(acc, index));
} else {
return acc;
}
};
return makeTable(0, 0);
};
И вот примеры, на которые я ссылаюсь:
<TestSuite suitename="Ex. 1.10 Minimum Examples">
<Test testname = "minimum last number" expected = {-10} actual = {Exercises.min([0,-5,-10])} />
<Test testname = "minimum first number" expected = {-50} actual = {Exercises.min([-50,40,-10,10,30])} />
<Test testname = "minimum third number" expected = {-80} actual = {Exercises.min([-10,-40,-50,0,-20,-80,-0.5,30])} />
<Test testname = "minimum all positive" expected = {0.01} actual = {Exercises.min([10,40,50,20,80,0.01,30])} />
</TestSuite>
Функция работает для первых трех массивов numList и возвращает минимальное значение массива, но с последним массивом по какой-то причине я получаю значение 0 вместо 0,01 в качестве минимального значения, что не имеет смысла для меня, потому что 0 даже не является одним из чисел в массиве.
Мне сказали, что это связано с тем, с чем я инициализировал аккумулятор, но я до сих пор не понял этого.
Любая помощь будет оценена.