循环遍历一组对象?

Sai*_*Sai 3 javascript arrays loops object

我正在努力创建一个印花税计算器.

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

     }
Run Code Online (Sandbox Code Playgroud)

Reg*_*lez 5

那是因为你将"tableRow"的替换值分配回"tableRow".在第一次迭代之后,tableRow不再包含"{taxband}",并且replace无效.

tableRow = tableRow.replace("{taxband}", taxbands[i].min + "-" + taxbands[i].max);
                $("#explained-table").append(tableRow);
Run Code Online (Sandbox Code Playgroud)

您应该添加一个中间变量:

var myRow = tableRow.replace("{taxband}", taxbands[i].min + "-" + taxbands[i].max);
                $("#explained-table").append(myRow );
Run Code Online (Sandbox Code Playgroud)