【问题标题】:How to run an If statement inside For statement to show only specific rows of a data set如何在 For 语句中运行 If 语句以仅显示数据集的特定行
【发布时间】:2021-10-24 08:11:54
【问题描述】:

我正在运行下面的 for 循环来创建数据表(产品名称、要价、买入价、ID)。它适用于我拥有的数据,但我的数据有 100 行长,我们只需要显示其中的 25 个项目。我正在寻找一种方法来仅显示与我想要显示的 ID 号匹配的行(我的编程技能真的很生疏)。

显示所有数据行的工作代码:

           for(var i=0; i<priceDatas.length; i++){
                var bidprice = "";
                var askprice = "";
                
               
                if(priceDatas[i]["bidPrice"]){
                  bidprice = priceDatas[i]["bidPrice"] - (priceDatas[i]["bidPrice"] * 1.5 / 100);
                  bidprice = bidprice.toFixed(2);
                  bidprice = "$" + bidprice;
                } else if(priceDatas[i]["Bid %"]){
                  bidprice = priceDatas[i]["Bid %"] - (priceDatas[i]["Bid %"] * 1.5 / 100);
                  bidprice = bidprice.toFixed(2);
                  bidprice = bidprice + "%";
                }
                
                if(priceDatas[i]["askPrice"]){
                  askprice = priceDatas[i]["askPrice"] + (priceDatas[i]["askPrice"] * 1.5 / 100);
                  askprice = askprice.toFixed(2);
                  askprice = "$" + askprice;
                } else if(priceDatas[i]["Ask %"]){
                  askprice = priceDatas[i]["Ask %"] + (priceDatas[i]["Ask %"] * 1.5 / 100);
                  askprice = askprice.toFixed(2);
                  askprice = askprice + "%";
                }
                
                
                var column = "<tr>";
                column = column + "<td>" + priceDatas[i]["Display Name"] + "</td>" + "<td>" + `${bidprice? bidprice :"-"}` + "</td>" + "<td>" + `${askprice? askprice :"-"}` + "</td>" + "<td>" + priceDatas[i]["id"] + "</td>";
                column = column + "</tr>";
                table = table + column;
                
              }
              
            document.getElementById("price_table").innerHTML = "<tr class='header-table'><td>Product</td><td>Bid</td><td>Ask</td><td>ID</td>" + table + "</tr>";

我想添加一组 ID 以仅显示表格上的特定项目而不是整个表格。我以为我可以这样做:

if(priceDatas[i]["id"] = "3081" || "54" || "56" ) { }

包裹了上面的代码,但我将它放在 for 循环中的哪个位置并不重要,它只是改变了 ID 列中显示的内容。我用===试过了,也没用。

如果 ID 是我列表中的数字之一,我怎么能说我的表中只显示那些 column

【问题讨论】:

    标签: javascript jquery json ajax


    【解决方案1】:

    您可以使用Arrayfilter 函数来过滤您的priceDatas,以及forEach 而不是for

    代码:

    
    priceDatas.filter(row => ["3081", "54", "56"].includes(row["id"])).forEach(row => {
        let bidprice = "";
        let askprice = "";
    
    
        if (row["bidPrice"]) {
            bidprice = row["bidPrice"] - (row["bidPrice"] * 1.5 / 100);
            bidprice = bidprice.toFixed(2);
            bidprice = "$" + bidprice;
        } else if (row["Bid %"]) {
            bidprice = row["Bid %"] - (row["Bid %"] * 1.5 / 100);
            bidprice = bidprice.toFixed(2);
            bidprice = bidprice + "%";
        }
    
        if (row["askPrice"]) {
            askprice = row["askPrice"] + (row["askPrice"] * 1.5 / 100);
            askprice = askprice.toFixed(2);
            askprice = "$" + askprice;
        } else if (row["Ask %"]) {
            askprice = row["Ask %"] + (row["Ask %"] * 1.5 / 100);
            askprice = askprice.toFixed(2);
            askprice = askprice + "%";
        }
    
    
        let column = "<tr>";
        column = column + "<td>" + row["Display Name"] + "</td>" + "<td>" + `${bidprice ? bidprice : "-"}` + "</td>" + "<td>" + `${askprice ? askprice : "-"}` + "</td>" + "<td>" + row["id"] + "</td>";
        column = column + "</tr>";
        table = table + column;
    })
    
    

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 2021-04-14
      • 2016-04-12
      • 2022-01-11
      • 2011-04-26
      • 2020-07-28
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      相关资源
      最近更新 更多