我有这个代码function myFunction() { var randomNumber = Math.floor(Math.random() * (1000-1+1))+1; if ((String(randomNumber).substring(-1) !== "7") || (String(randomNumber).substring(-1) !== "8") || (String(randomNumber).substring(-1) !== "9")) { alert(randomNumber); } else{ myFunction(); return; }}输出应使 7、8 和 9 不能是最后一位,如果是,则跳过。但这似乎不起作用,7、8和9经常是整数中的最后一个数字。有人可以帮我完成这项工作吗?编辑: (String(randomNumber).substring(String(randomNumber).length-1) !== "7") 诀窍
1 回答

胡子哥哥
TA贡献1825条经验 获得超6个赞
TLDR
x !== ("0" || "8" || "9")
如果比较的目的是“x 不是 '0' 或 '8' 或 '9',则需要将其拆分为不同的比较。
x !== "0" || x !== "8" || x !== "9"
原始比较中发生了什么?
括号()
是分组"0" || "8" || "9"
,导致"0"
.
===
由于运算符优先级,此组在 之前首先进行比较。
小组的结果是怎么来的"0"
?
逻辑 OR 运算符检查左侧参数是否为“真” 。如果是,则返回,如果否,则返回右侧参数。
例如:
let variable = A || B
如果A
为真,A
则分配给variable
,否则B
分配给variable
。
如果使用了错误的术语,我们深表歉意。
添加回答
举报
0/150
提交
取消