如何在 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】:您可以使用Array
的filter
函数来过滤您的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语句?