Javascript 在if语句中将相同的值与多个其他值进行比较
这一个可能相当简单,但我还没有成功地找到答案。无论如何,我要做的是将一个值与一组其他值进行比较,如果它与其中一个值匹配,则运行脚本。这是我想做的详细版本,它工作得很好,但我假设有一种更聪明、更少详细的方法来实现这一点Javascript 在if语句中将相同的值与多个其他值进行比较,javascript,if-statement,Javascript,If Statement,这一个可能相当简单,但我还没有成功地找到答案。无论如何,我要做的是将一个值与一组其他值进行比较,如果它与其中一个值匹配,则运行脚本。这是我想做的详细版本,它工作得很好,但我假设有一种更聪明、更少详细的方法来实现这一点 function updatePosition(e) { if((e.target.innerHTML == 1) || (e.target.innerHTML == 4) || (e.target.innerHTML == 7)) { con
function updatePosition(e) {
if((e.target.innerHTML == 1) || (e.target.innerHTML == 4) ||
(e.target.innerHTML == 7)) {
console.log(e.target.innerHTML)
}
}
可以将所有有效比较存储在数组中。然后可以使用
Array#Find()
获取匹配值。如果没有匹配的值,您将得到undefined
函数更新位置(num){
设validNumber=[1,4,7];
log(validNumbers.find(valid=>valid==num));
}
更新位置(4);
更新位置(9)
由于innerHTML
属性是一个字符串,因此需要将其转换为一个数字,才能在链接副本中使用indexOf
解决方案:if([1,4,7].indexOf(+e.target.innerHTML)!=-1)
。一元+
运算符将值转换为数字。嘿@Ryan!e.target前面的加号是什么?@Argee:我的评论中有一半或更多是对加号的描述,谢谢:)谢谢你的链接,@Ryan!如果可以使用包含
或索引
,为什么要使用查找
?如果像问题所要求的那样将值0
用作真实性值,则该值也会中断。@Ryan OP正在比较e.target.innerHTML
。如果他找到了它,他会在console.log()中使用e.target.innerHTML
。使用find()
允许OP在找到值时直接使用该值<代码>包含
或索引只会告诉他他找到了它。