javascript - 如果条件不满足,则减少循环迭代
问题描述
我有以下代码:
for (var i = 0; i < data.status.length; i++) {
if(data.status[i].isMode == 0) {
var row = '<tr><td>' + data.status[i].Name + '</td><td>' + data.status[i].Pay + '</td></tr>';
var row = '<tr><td>' + data.status[i].Name + '</td><td>' + data.status[i].Pay + '</td></tr>';
}
}
它工作顺利,但如果有 5 个项目,data.status.length
并且2
项目的值为isMode
as0
和其他为 1,它仍然循环5
时间并显示这些值,我只想隐藏这些值,因为它们用于金额计算,我不不希望他们的价值观也成为总和
这是我的 JSON
{
"status": [
{
"Name": "Apple",
"Pay": "1",
"isMode": "0"
},
{
"Name": "Banana",
"Pay": "1",
"isMode": "0"
},
{
"Name": "Kiwi",
"Pay": "1",
"isMode": "1"
},
{
"Name": "Fruits",
"Pay": "1",
"isMode": "1"
},
{
"Name": "Basket",
"Pay": "1",
"isMode": "1"
}
]
}
解决方案
根据 isMode 属性过滤您的对象数组,然后循环使用结果
var newArray =data.status.filter(function (el) {
return el.isMode==0;
}
for (var i = 0; i < newArray.length; i++) {
var row = '<tr><td>' + newArray[i].Name + '</td><td>' + newArray[i].Pay + '</td></tr>';
}
推荐阅读
- ruby-on-rails - rails 4.2.6 upgrade-insecure-requests CSP meta 怎么放到head里?
- javascript - 函数返回未定义、预期的承诺或值
- pandas - 如何将每个新数据框添加到创建的 csv 中?
- flask - 为什么烧瓶将 %20 变成 %2520?
- c++ - 使用 switch 将整数更改为字符串
- python - Python:如何防止重复随机选择的键/值对
- javascript - 在 .js 和 vscode 中使用 # 在 var name 之前创建私有变量时,保存将其分开
- wiremock - 在wiremock映射json BodyPatterns中只有最后一个比较发生
- python - 如何从 python 中的 response.text() 中提取值
- html - 输入类型文件 - 没有得到边框底线