Javascript 在一个对象数组中循环?

Javascript 在一个对象数组中循环?,javascript,arrays,loops,object,Javascript,Arrays,Loops,Object,我正在尝试创建一个印花税计算器 目前,我有一个包含3个属性的对象数组,每个对象都有相同的属性名,但值不同 如果单击按钮,我尝试通过此数组循环将属性1和2附加到表行,但是循环仅附加第一个对象属性,而不附加其他属性 我知道也有类似的疑问,但都没有帮助。我确信我遗漏了一些简单的东西 为了更好地理解这个问题,我还附上了一份img 这是我的密码 var taxbands = [ { min: 0, max: 1250

我正在尝试创建一个印花税计算器

目前,我有一个包含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);
            }
        }

     }
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,我只包括它,因为我需要检查一些东西,但它不应该有任何影响