IF Statement Multiple Answers - Same Result Javasc

2019-08-30 00:06发布

Is their a method to have multiple right answers with the same result?

 function check(code){
    if(code == (8 || 9 || 13 || 16 || 17 || 18 || 20 || 32)){
      return true;
    }
 }

I know I can use a switch statement, but I was wondering if their is anyway similar to this. I already tried using an array but its slow.

I also realise that you can use && but I don't want to have to type code == a hundred times.

4条回答
冷血范
2楼-- · 2019-08-30 00:18

Nope, you've got to spell them all out.

A better way would be a loop:

var values = [8, 9, 13, 16, 17, 18, 20, 32];
for (i = 0; i < values.length; ++i) {
    if (code === values[i]) {
        // do something.
    }
}
查看更多
乱世女痞
3楼-- · 2019-08-30 00:19

You either have to do this

return code == 8 || code == 9 || ...;

or this

return [8, 9, 13, ...].indexOf(code) > 0;
查看更多
家丑人穷心不美
4楼-- · 2019-08-30 00:29

consider using an array

function check(code){
    return [8,9,13,16,17,18,20,32].indexOf(code) != -1;
}

Note that the indexOf method is a part of ECMA5 and may not be available in some browsers.

See https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf for full document.

查看更多
乱世女痞
5楼-- · 2019-08-30 00:29

How about that:

function check(code){
   return [8, 9, 13, 16, 17, 18, 20, 32].indexOf(code) != -1;
}
查看更多
登录 后发表回答