JavaScript兴趣计算器,如何用两个不同的速率返回值



我具有此收入计算器函数

EarningsCalculator.prototype.computeEarning = function (rate, investedValue) {
    var earnings = {};
    var currentState = investedValue;
    for (var i = 0; i <= 5; i++) {
            earning=currentState*rate;
            currentState = currentState + earning;
        earnings[i] = currentState;
    }
    return earnings;
}

它采用"投资价值",并基于给出利率,它计算收入,在这种情况下,该收入限制为5年,而for loop却限制为5年。我需要的是以1年的间隔计算earnings[0],并以5年间隔earnings[1]通过CC_2进行计算。

因此,投资价值为1000,利率为10%,它返回以下输出5年

Year1  = 1100
Year2  = 1210
Year3  = 1331
Year4  = 1464.1
Year5  = 1610.51

我想要的是这个

Year1  = 1100
Year5  = 1610.51
Year10 = 2593.74246
Year15 = 4177.248169
Year20 = 6727.499949

您可以使用配方来计算收入。

function getPeriodicCompounding(p, r, t) {
    return Math.pow(r + 1, t) * p;
}
var originalPrincipalSum = 1000,
    interestRate = 0.1,
    times = [1, 5, 10, 15, 20]
    
times.forEach(function (time) {
    console.log(time, getPeriodicCompounding(originalPrincipalSum, interestRate, time));
});

您可以在循环的几年中使用模量,以添加那些可分开的年份。

function EarningsCalculator (rate, investedValue) {
var earnings = {};
var currentState = investedValue;
var YEAR_INTERVAL = 5;
var YEARS_COMPOUNDING = 20;
for (var i = 1; i <= YEARS_COMPOUNDING; i++) {
        earning=currentState*rate;
        currentState = currentState + earning;
            if (i % YEAR_INTERVAL == 0 || i == 1) {
        earnings[i] = currentState;
    }
}
return earnings;
}
var earnings = [];
earnings = EarningsCalculator(.10,1000); 
console.log(earnings);

应该将正确的值记录到控制台中的对象。

这样的优点是能够将您的年度间隔更改为变量,而不是在不同时间段内进行硬编码。

jsfiddle:https://jsfiddle.net/kgill/zgmrtmhg/1/

最新更新