Вечный вопрос

Итак, по заданию нужно написать функцию, которая вызывает дважды функцию из предыдущего задания и сравнивает их, а затем выводит сообщение что тот или этот вклад лучше + значение вклада. Однако, не совсем понимаю, зачем я должен по заданию указывать в новой функции два параметра - это процент С и БЕЗ капитализации, если в предыдущей функции это всё учтено! Подумал, что видимо это задание изменили, не учтя этот момент. Поэтому решил просто объединить две функции в одну, однако 3ий тест программа не хочет проходить. Сидел пытался найти ошибку, но ничего не заметил. Может у Вас получится?

var getProfitableDeposit = function (startingDeposit, terms, commonPercent, uncommonPercent ) {
for (var i = 1; i <= terms; i++) {
uncommonDeposit = startingDeposit + (startingDeposit / 100) * (uncommonPercent / 12);
}

var commonDeposit = startingDeposit + (startingDeposit / 100) * (commonPercent / 12 * terms);

if (uncommonDeposit > commonDeposit) {
var message = 'Выбирай капитализацию. Заработаешь ’ + Math.floor(uncommonDeposit);
}

else {
message = 'Выбирай обычный вклад. Заработаешь ’ + Math.floor(commonDeposit);
}
return message;
}

На всякий случай - вот код предыдущей программы.

var calculateDeposit = function (startingDeposit, percent, term, isCapitalize) {
if (isCapitalize) {
for ( i = 1; i <= term; i++) {
startingDeposit += (startingDeposit / 100) * (percent / 12);
}
}

else {
startingDeposit += (startingDeposit / 100) * (percent / 12 * term);
}

return Math.floor(startingDeposit);
};

Указывать в новой функции процент с и без капитализации нужно, потому что они могут быть разными. Это ясно из задания. Вы используете эти параметры потом в своём коде — commonPercent и uncommonPercent, вот здесь они и нужны.
В предыдущем функции задание было совсем в другом — процент был один, надо было рассчитать сумму с капитализацией и без.
Ещё в своём решении вы не переиспользуете функцию из предыдущего задания, как это рекомендуется, а пишите код снова. Можно было бы сделать вот так:

2 лайка

Мой вариант:
let getProfitableDeposit = (sumDiposit, term, ps, psc) => {
let cv=p=>p/12/100; //процент в десятичной дроби за месяц
let [text0,text1] = [
'Выбирай обычный вклад. Заработаешь ',
'Выбирай капитализацию. Заработаешь ’
];

let sumPs  = Math.floor(sumDiposit*(1+cv(ps)*term));// формула расчета для простого вклада
let sumPsc = Math.floor(sumDiposit*(1+cv(psc))**term);// ... с капитализацией

  return (sumPs>sumPsc)?text0+sumPs:text1+sumPsc;

}