涂煌豪
2022-05-06 98e508d2852896dbde98edcc9ed6d87645a6a230
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
({
    mortgageChange : function(component, event) {
        var principal = event.getParam("principal");
        var years = event.getParam("years");
        var rate = event.getParam("rate");
        var monthlyPayment = event.getParam("monthlyPayment");
        var monthlyRate = rate / 100 / 12;
        var balance = principal;
        var amortization = [];
        for (var y=0; y<years; y=y+1) {
            var interestY = 0;  //Interest payment for year y
            var principalY = 0; //Principal payment for year y
            for (var m=0; m<12; m=m+1) {
                var interestM = balance * monthlyRate;       //Interest payment for month m
                var principalM = monthlyPayment - interestM; //Principal payment for month m
                interestY = interestY + interestM;
                principalY = principalY + principalM;
                balance = balance - principalM;
            }
            amortization.push({principalY: Math.round(principalY), interestY: Math.round(interestY), balance: Math.round(balance)});
        }
        component.set("v.amortization", amortization);
    }
})