Деньги к деньгам. Не могу найти ошибку.

Подскажите, пожалуйста, в чем ошибки?
В консоле две разных ошибки:

  1. Это вроде как на какую то переменную из цикла?
    " TypeError: Unable to get property ‘check’ of undefined or null reference "
  2. Вторая ошибка на округление:
    " TypeError: Unable to get property ‘round’ of undefined or null reference " У меня браузер EDGE

var calculateDeposit = function(sums, procients, srok, kapit) {
var mounth=procients*0.01/12;
var nowSum=sums;

if (!kapit) {
var dohod =sums * mounth * srok;
var sumProcient=Math.round(sums + dohod);
}
else {
for (var i=0; i<srok; i++) {
nowSum=nowSum+mounth*nowSum;
};
var sumProcient=Math.round(nowSum);
};

return sumProcient;    

}

Это ошибки у проверки, не знаю как они у них там работают. Если кратко это ошибка типизации, попытка обратиться к null или undefined как к объекту, то есть в проверке даны инструкции обратится к объекту с указанными свойствами “check” и “round”, а там null или undefined. Возможно где-то отпечатка или попробуйте в другом браузере. Может я ошибаюсь

И да, код не читаем совершенно! Название аргументов и переменных кошмар!

1 лайк

У меня было предположение, что некоторые названия в переменных нельзя использовать и поэтому я много раз их менял и всячески экспериментировал, в этой версии программы они уже просто какие придется, сори за нечетабельность)
Получилось сдать в хроме не меняя код! Хотя я уже пребывал, но на этот раз видимо звезды в нужном положении стоят)) Спасибо!
ПРОБЛЕМА РЕШЕНА

var calculateDeposit = function (sum, percent, time, capitalize ) {
var percent_per_month = percent / 12 / 100;
var percent_sum = 0;
if (capitalize) {
for (var i = 0; i < time; i++){
percent_sum = sum * percent_per_month;
sum += percent_sum;
}
} else {
percent_sum = sum * percent_per_month * time;
sum += percent_sum;
}
return Math.round(sum);
};

С капитализацией

Сводка

const culculatePercent = percent => percent / 12 / 100;

const calculateDeposit = (deposit, percent, months, isCapitalized) => {
  const percentYear = culculatePercent(percent)

  if (isCapitalized) {
    let capDeposit = deposit;
    let sumPercent = 0;
    for (let i = months; i > 0; i--) {
      capDeposit += percentYear * capDeposit;
    }

    return Math.floor(capDeposit);
  }
  
  return Math.floor(percentYear * months * deposit + deposit);
};