如何在 For 语句中运行 If 语句以仅显示数据集的特定行

Posted

技术标签:

【中文标题】如何在 For 语句中运行 If 语句以仅显示数据集的特定行【英文标题】:How to run an If statement inside For statement to show only specific rows of a data set 【发布时间】: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

【问题讨论】:

【参考方案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;
)

【讨论】:

以上是关于如何在 For 语句中运行 If 语句以仅显示数据集的特定行的主要内容,如果未能解决你的问题,请参考以下文章

如何在 html 标记(如段落)中使用 if 语句显示 for 循环的结果

如何使用 javascript for-loop 和 if-statement 在右表中显示数据?

如何比较两个for循环的值并在django模板中使用if语句?

如何查看navicat for mysql是不是激活

shell 编程 里面 if 嵌套 for 语句的匪夷所思的 事情!!

批处理:如何在 for 命令中返回 if then 语句?