javascript - 如何在 For 语句中运行 If 语句以仅显示数据集的特定行
问题描述
我正在运行下面的 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
我表中的数字?
解决方案
您可以使用filter
功能Array
来过滤您的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;
})
推荐阅读
- javascript - Postman - 如何计算 JSON 响应中特定对象的出现次数
- android - 编译错误:找不到具有自定义属性的符号 FragmentBindingImpl
- groovy - Groovy 检查地图中的键,尝试访问地图值是否正确?
- asp.net-core - 如何路由到 api/values?id=1&type=2
- c++ - 哪种线性方程算法通常比 LAPACK 需要更少的内存?我可以在 R 或 RcppArmadillo 中使用它吗?
- javascript - 无法弄清楚如何显示只有相同值的表数据
- reactjs - 我想首先创建电子商务网站,通过 react 和 redux 从 api 获取产品
- javascript - 将 javascript 变量从一个 iframe 设置为另一个
- linux - 在服务器重新启动时自动启动 Linux“服务”
- php - 从另一个类调用 PHP 方法