Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在if语句中将相同的值与多个其他值进行比较_Javascript_If Statement - Fatal编程技术网

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在找到值时直接使用该值<代码>包含
或索引只会告诉他他找到了它。