[英]Loop through an array of objects?
我正在努力创建一个印花税计算器。
目前,我有一个包含3个属性的对象数组,每个对象具有相同的属性名称但值不同。
我试图循环遍历此数组,以便在单击按钮时将属性1和2附加到表行,但是循环仅追加第一个对象属性而不追加其他属性。
我知道有类似的问题,但没有一个有帮助。 我确信有一些我想念的简单。
我还附上了一个img,以便更好地理解这个问题
这是我的代码
var taxbands = [
{
min: 0,
max: 125000,
percent: 0
},
{
min: 125000,
max: 250000,
percent: 0.02
},
{
min: 250000,
max: 925000,
percent: 0.05
},
{
min: 925000,
max: 1500000,
percent: 0.1
},
{
min: 1500000,
max: null,
percent: 0.12
}
]
var tableRow = "<tr><td>{taxband}</td><td>{percent}</td><td>{taxable}</td><td>{TAX}</td></tr>";
$('#calculate').on('click', function calculateButton() {
calculateStampDuty();
})
function calculateStampDuty() {
var userInput = parseInt($("#input-value").val());
for (i = 0; i < taxbands.length; i++) {
if (userInput < 125000) {
tableRow = tableRow.replace("{taxband}", taxbands[i].min + "-" + taxbands[i].max);
$("#explained-table").append(tableRow);
}
}
}
那是因为你将“tableRow”的替换值分配回“tableRow”。 在第一次迭代之后,tableRow不再包含“{taxband}”,并且replace无效。
tableRow = tableRow.replace("{taxband}", taxbands[i].min + "-" + taxbands[i].max);
$("#explained-table").append(tableRow);
您应该添加一个中间变量:
var myRow = tableRow.replace("{taxband}", taxbands[i].min + "-" + taxbands[i].max);
$("#explained-table").append(myRow );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.