在javascript中,我是否正确使用了逻辑运算符或(| |)?
如果键入的_边具有值, 将显示警报(“是”) 是不是不应该展示 我想要的是,当键入的_edge具有值“非此即彼”或“可行走”时,不会显示警报。但事实似乎并非如此 试试这个:在javascript中,我是否正确使用了逻辑运算符或(| |)?,javascript,operator-keyword,logical-operators,Javascript,Operator Keyword,Logical Operators,如果键入的_边具有值, 将显示警报(“是”) 是不是不应该展示 我想要的是,当键入的_edge具有值“非此即彼”或“可行走”时,不会显示警报。但事实似乎并非如此 试试这个: if ((typed_edge!='Either') || (typed_edge!='Walkable')){ alert("YES"); alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1])
if ((typed_edge!='Either') || (typed_edge!='Walkable')){
alert("YES");
alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
}
编辑:遗漏了问题中的“否”
if (typed_edge !== 'Either' && typed_edge !== 'Walkable'){
alert("YES");
alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
}
你应该把一个条件变成一个句子,这样更容易构建。这样,您只需将语法替换为所需的语法。按照上面的方式,您需要:
if (typed_edge==='Either' || typed_edge==='Walkable'){
alert("YES");
alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
}
按照你现在的方式,上面写着:
如果不是的话
或
如果它不能行走
这意味着如果它是“可行走的”,那么第一个条件的计算结果为“true”
这意味着警报将发出
相反,如果它是“要么”,那么第二个条件将是“true”,它将触发。如果正确使用
|
条件,但是如果在if()
语句中使用不等于,请尝试以下操作:
if('Either' !== typed_edge && 'Walkable' !== typed_edge) {
// this means - it is NOT both of them
}
也许可以尝试另一种方法。将您的白名单/黑名单值加载到数组中,并检查是否找到任何值
if ((typed_edge=='Either') || (typed_edge=='Walkable')){
alert("YES");
alert("type_edge"+ typed_edge + bus_stops_visited[$k]+ " " +bus_stops_visited[$k+1]);
}
在该示例中保证会调用它,因为typed_edge
总是与这些字符串中的一个不同,因为它不能同时匹配两个字符串。+1@jens.bhurtah:您描述的更直译是!(…==…|…==…)
,这可能更容易理解。+1。你是唯一一个(到目前为止)似乎理解问题意图的人(除了MattP,但他删除了他的答案)。我需要尽快回答另一个问题-不能在666上停留太久。。。我认为海报对语法不是很确定,但看起来其余的都理解了。这与@jens.bhurtah要求的相反:他希望如果与这些字符串中的任何一个匹配,则不会显示警报。这与问题中的代码相同(除了使用!==
而不是!=
),因此没有达到预期的效果。对不起。。我没有测试就发布了代码。现在它是有意义的-如果文本不是其中之一,并且文本不可行走
if(["Either","Walkable"].indexOf(typed_edge) > -1)
{
alert('got either or walkable here');
}