函数中的循环仅循环一次
getNew()
函数内部的以下循环仅循环一次,如果月等于19800
,则返回正确的1
。我想保持getNew()
循环。假设月份等于3
,它将打印:19800, 197195.80, 195787.39
。
arr1 = [200000, 0.003, 2000];
function getNew (month) {
for (i = 0; i <= month; i ++){
monthlyInterest = arr1[0] * arr1[1]
paymenttoPrinciple = arr1[2] - monthlyInterest;
newMortgageBalance = arr1[0] - paymenttoPrinciple;
arr1[0] = newMortgageBalance;
return (newMortgageBalance);
}
}
回答如下:您在return
循环中有一个for
。这将返回第一个实例并退出该函数。另外,如果month = 3
,则必须将i <= month
更改为i < month
。
要解决您的问题,您应该制作另一个数组并将结果推送到它。
例如
arr1 = [200000, 0.003, 2000];
console.log(getNew(3));
function getNew(month) {
let result = [];
for (i = 0; i < month; i++) {
monthlyInterest = arr1[0] * arr1[1]
paymenttoPrinciple = arr1[2] - monthlyInterest;
newMortgageBalance = arr1[0] - paymenttoPrinciple;
arr1[0] = newMortgageBalance;
result.push(newMortgageBalance);
}
return result;
}
.as-console-wrapper { top: 0; max-height: 100% !important; }