Javascript 在一个对象数组中循环?
我正在尝试创建一个印花税计算器 目前,我有一个包含3个属性的对象数组,每个对象都有相同的属性名,但值不同 如果单击按钮,我尝试通过此数组循环将属性1和2附加到表行,但是循环仅附加第一个对象属性,而不附加其他属性 我知道也有类似的疑问,但都没有帮助。我确信我遗漏了一些简单的东西 为了更好地理解这个问题,我还附上了一份img 这是我的密码Javascript 在一个对象数组中循环?,javascript,arrays,loops,object,Javascript,Arrays,Loops,Object,我正在尝试创建一个印花税计算器 目前,我有一个包含3个属性的对象数组,每个对象都有相同的属性名,但值不同 如果单击按钮,我尝试通过此数组循环将属性1和2附加到表行,但是循环仅附加第一个对象属性,而不附加其他属性 我知道也有类似的疑问,但都没有帮助。我确信我遗漏了一些简单的东西 为了更好地理解这个问题,我还附上了一份img 这是我的密码 var taxbands = [ { min: 0, max: 1250
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);
}
}
}
var分类带=[
{
分:0,,
最高:125000,
百分比:0
},
{
最低:125000,
最高:250000,
百分比:0.02
},
{
最低:25万,
最高:925000,
百分比:0.05
},
{
最低:925000,
最高限额:1500000,
百分比:0.1
},
{
最低:1500000,
max:null,
百分比:0.12
}
]
var tableRow=“{taxband}{percent}{taxband}{TAX}”;
$('#calculate')。在('click',函数calculateButton()上{
计算关税();
})
函数calculateStampDuty(){
var userInput=parseInt($(“#输入值”).val();
对于(i=0;i
这是因为您将替换的“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 );
#input value
在它不起作用的实例中有什么值?在第一次替换“tableRow”字符串中的{taxband}
后,下次它将不再存在!另外,在该函数中用var
声明i
!任何低于125000,我只包括它,因为我需要检查一些东西,但它不应该有任何影响