quelquecosa quelquecosa - 5 months ago 9
Javascript Question

Is there a faster way of writing OR operator?

Is there a faster way of writing this?

if ($('#id').val()==7 || $('#id').val()==8 || $('#id').val()==9){
console.log('value of #id is 7, 8, or 9!')
};


I'm thinking of something like:

if ($('#id').val()== 7||8||9){
console.log('value of #id is 7, 8, or 9!')
};

Answer

You can use indexOf(), it returns the first index at which a given element can be found in the array, or -1 if it is not present.

if ([7,8,9].indexOf(+$('#id').val()) > -1){
    console.log('value of #id is 7, 8, or 9!')
};

The above function will work in IE9+, for older browser's you can use either PolyFill or jQuery.inArray(value, array)

if (jQuery.inArray(+$('#id').val(),[7,8,9]) > -1){
    console.log('value of #id is 7, 8, or 9!')
};