【发布时间】:2019-10-10 01:49:26
【问题描述】:
所以我试图弄清楚如果所有 if/else 语句都是错误的,如何执行一个函数。下面是我目前正在使用的一段 sn-p 代码,它使用 for loop 检查对象中的值以迭代每个对象,然后检查 key/pair 值 technology。
如果所有语句都是假的,它应该返回或执行函数noMatch 当前sn-p 为每个else 语句执行函数noMatch。如果没有匹配的值,有没有办法只执行一次?
$(document).ready(function() {
let object = [
{
"planId": "1",
"technology": "LTE@Home"
},
{
"planId": "2",
"technology": "LTE@Home"
},
{
"planId": "54",
"technology": "home-prepaid-wifi"
},
{
"planId": "0",
"technology": "XTreme Prepaid",
}
];
let technology = "lte-technology";
let dataObject = object;
function match() {
console.log("match");
}
function noMatch() {
console.log("no match");
}
for (let key in dataObject) {
let obj = dataObject[key];
if(technology == obj.technology) {
return match()
} else {
return noMatch()
}
}
});
【问题讨论】:
-
您通常会使用一个初始化为 false 的标志,如果任何条件为真,则该标志设置为 true。然后在处理结束时,如果它仍然是假的,那么所有的测试都是假的,你可以用这些信息做任何事情。你试过什么?
-
@RobG 我一直在想办法做到这一点。正在考虑执行另一个
if/else语句来检查循环计数,一旦达到最后一个计数,它将返回或执行一个函数 -
使用
array.some的答案是最好的。数组原型函数既表达意图又使代码更简洁。
标签: javascript json