我有这个赚钱计算器功能
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;
}
需要投入价值&#34;并且基于给定率,它计算收益,在这种情况下,使用for循环限制为5年。我需要的是以1年的间隔计算earnings[0]
,并以5年的间隔计算earnings[1]
到earnings[4]
。
因此,当投资价值为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
答案 0 :(得分:3)
您可以使用公式来计算收入。
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));
});
答案 1 :(得分:1)
您可以在for循环中使用年份的模数,仅添加可被5整除的年份。然后为第一年添加另一个或条件:
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);
这应该在控制台中将正确的值记录到您的对象。
这样做的一个优点是能够将年度间隔更改为变量,而不是在不同的时间段内对数组中的值进行硬编码。