Typescript: условный шаг в задаче прямой рекурсии, не приводящий к необходимому выводу - PullRequest
0 голосов
/ 22 января 2019

Я майор из СНГ, который посещает класс машинописи. Сейчас я работаю над этим упражнением:

"Определить функцию 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 даже не является одним из чисел в массиве.

Мне сказали, что это связано с тем, с чем я инициализировал аккумулятор, но я до сих пор не понял этого.

Любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...