[英]How to for each new object push it into array, with avoiding override? JavaScript
我有一個 function,它根據價格、月份和利率計算貸款,然后創建貸款數據的 object。
let ratae = list.map((rata) => rata.NKS);
let prr = article.price;
let price = parseFloat(prr.replace(/\.| ?€$/g, '').replace(',', '.'));
for (i = 0; i < ratae.length; i++) {
loan = new LoanJS.Loan(price, 2, ratae[i]);
console.log(loan);
}
res.status(200).json(loan);
所以問題是每次獲取新的ratae[i]
時,貸款都會覆蓋它自己。 console.log(loan)
看起來像這樣:
{ installments:
[ { capital: 162222.19,
interest: 1113.13,
installment: 163335.32,
remain: 162777.81,
interestSum: 1113.13 },
{ capital: 162777.81,
interest: 557.51,
installment: 163335.32,
remain: 0,
interestSum: 1670.64 } ],
amount: 325000,
interestSum: 1670.64,
capitalSum: 325000,
sum: 326670.64 }
{ installments:
[ { capital: 162233.67,
interest: 1067.08,
installment: 163300.75,
remain: 162766.33,
interestSum: 1067.08 },
{ capital: 162766.33,
interest: 534.42,
installment: 163300.75,
remain: 0,
interestSum: 1601.5 } ],
amount: 325000,
interestSum: 1601.5,
capitalSum: 325000,
sum: 326601.5 }
所以我在 postman 中的回復只會是最后一installments
。 我需要某種循環,對於每筆新的分期付款(或每筆新貸款)都將其推送到數組/對象中,那么我想要的 output 將是:
{ installments:
[ { capital: 162222.19,
interest: 1113.13,
installment: 163335.32,
remain: 162777.81,
interestSum: 1113.13 },
{ capital: 162777.81,
interest: 557.51,
installment: 163335.32,
remain: 0,
interestSum: 1670.64 } ],
amount: 325000,
interestSum: 1670.64,
capitalSum: 325000,
sum: 326670.64 }, //here to add comma or something else to create new object or array of installments
{ installments:
[ { capital: 162233.67,
interest: 1067.08,
installment: 163300.75,
remain: 162766.33,
interestSum: 1067.08 },
{ capital: 162766.33,
interest: 534.42,
installment: 163300.75,
remain: 0,
interestSum: 1601.5 } ],
amount: 325000,
interestSum: 1601.5,
capitalSum: 325000,
sum: 326601.5 }
還有完整的 function 這部分位於: https://jsfiddle.net/a5jk3fy7/ 在 jsfiddle上查看它,以防止這篇文章中的代碼過多。
任何解決方案的想法? 謝謝。
我不確定,但看起來您的問題可能是由於在異步 function (獲取)中使用全局綁定( i
)作為計數器。
如果您inside
循環中聲明let i = 0
(類似於下面的簡單示例),問題 go 會消失嗎?
let ratae = [1, 2, 3]; for (let i = 0; i < ratae.length; i++) { const loan = { detail: ratae[i] }; console.log(loan); }
嘗試這樣的事情:
const loan = list.map((rata) =>
LoanJS.Loan(price, 2, rata.NKS)
);
就像您帖子中的評論一樣,您正在壓倒loan
。 有了這個 u rata
並且對於每個比率你插入新的loan
條目
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.