首页 > 解决方案 > 函数中的for循环只循环一次

问题描述

函数内的以下循环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);     
    }
}

标签: javascriptnode.js

解决方案


你有一个return内部for循环。这将返回第一个实例并退出函数。另外,如果month = 3您必须更改i <= monthi < 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; }

getNew(3)返回[19800, 197195.80, 195787.39]


推荐阅读