我正在輸出一個陣列,該陣列將根據loanAmount,interest和loanTermYears為字典回傳貸款欠款instance1。字典列印成功。但是,calculatedLoanAmount回傳 NaN。函式 calculateAmount 未正確讀取鍵值對。如何正確插入這些鍵值對作為引數,以便函式可以回傳欠款總額?
var info = []
var instance1 = new Object();
var instance1 = {
Id: 0,
customerName: "Khawaja Sardar",
phoneNumber: "745-544-7777",
address: "New York, NY",
loanAmount: 5000,
interest: 6.0,
loanTermYears: 5,
loanType: "APR",
description: "Loan domain for instance1",
calculatedLoanAmount: calculateAmount(instance1.loanAmount, instance1.interest, instance1.loanTermYears)
}
function calculateAmount(loanAmount, interest, loanTermYears) {
var totalMonth = loanTermYears * 12;
var montlyInterest = interest / 100 / 12;
var temp = Math.pow(1 montlyInterest, totalMonth);
var monthlyPayment = loanAmount * montlyInterest * temp / (temp - 1);
var sum = monthlyPayment * totalMonth
var totalAmount = sum
return totalAmount
}
info.push(instance1)
console.log(info)
uj5u.com熱心網友回復:
問題在于您宣告物件的方式。這段代碼只是創建了一個Instance包含所有資料的物件instance1。試試這個:
var info = [];
function calculateAmount(loanAmount, interest, loanTermYears) {
var totalMonth = loanTermYears * 12;
var montlyInterest = interest / 100 / 12;
var temp = Math.pow(1 montlyInterest, totalMonth);
var monthlyPayment = (loanAmount * montlyInterest * temp) / (temp - 1);
var sum = monthlyPayment * totalMonth;
var totalAmount = sum;
return totalAmount;
}
function Instance(instance) {
this.Id = instance.Id;
this.customerName = instance.customerName;
this.phoneNumber = instance.phoneNumber;
this.address = instance.address;
this.loanAmount = instance.loanAmount;
this.interest = instance.interest;
this.loanTermYears = instance.loanTermYears;
this.loanType = instance.loanType;
this.description = instance.description;
this.calculatedLoanAmount = calculateAmount(
this.loanAmount,
this.interest,
this.loanTermYears
);
}
var instanceParams = {
Id: 0,
customerName: "Khawaja Sardar",
phoneNumber: "745-544-7777",
address: "New York, NY",
loanAmount: 5000,
interest: 6.0,
loanTermYears: 5,
loanType: "APR",
description: "Loan domain for instance1"
};
const instance1 = new Instance(instanceParams);
info.push(instance1);
console.log(info[0]);
uj5u.com熱心網友回復:
如果你洗掉了第二行,你會得到一個錯誤,比如
'cannot read properties of undefined (reading "loanAmount")'因為instance1還沒有定義。如果要根據物件包含的其他鍵設定物件的鍵,則需要在創建物件后進行,例如
var instance1 = {
...
}
instance1.calculatedLoanAmount = calculateLoanAmount(instance1.loanAmount, instance1.interest, instance1.loanTermYears)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/508664.html
標籤:javascript
下一篇:Vuejs-如何在沒有javascriptTypeError的情況下從v-for之外的fetch中顯示json值
