我想比较-180至180之间的验证范围。如果数字小于-180且大于180,则应显示错误。
我写了下面的代码-
if((markerPoint[0] && parseInt(markerPoint[0],10) < -180 || parseInt(markerPoint[0],10) > 180)) {
this.latlngError.push("Invalid coordinates");
} else {
this.isLanLngValid = true;
}
但这是返回不正确的比较。
5条答案
按热度按时间h22fl7wq1#
我想比较-180至180之间的验证范围
对于介于-180和180之间的数字,该数字必须大于-180且小于180,因此请更改比较。
8cdiaqws2#
试试这个JsFiddle
sy5wg1nm3#
替换下面的代码,它肯定会工作。
如果(标记点[0]〉=-180且标记点[0]〈=180)
093gszye4#
代码的一个问题是,在JavaScript中,
&&
的优先级高于||
。(请参见表here。)因此,逻辑的计算就像它被括号括起来一样:您可以使用括号来更改此设置:
如果
markerPoint[0]
是一个真实值,并且其计算结果超出范围[-180,180],则if
测试将通过。44u64gxh5#
您可以改用Math.abs():
编辑:正如@TedHopp所指出的,当前代码的明显问题似乎是运算符优先级。
&&
比||
具有higher precedence。使用Math.abs()可以绕过这个问题。如果这不能解决问题,那么需要提供更多的代码进行调试。