如何测试变量是否等于五个数组值之一

时间:2016-09-28 21:47:18

标签: javascript jquery arrays if-statement

我在数组中存储了五个值,我需要检查我设置的变量是否等于其中一个值。这就是我的意思:

var x = e.clientX, // horizontal mouse position
myArray = []; // I have another function that stores five values in this array

if(x == /*one of the five array values*/){
    //do something
}

...谢谢

5 个答案:

答案 0 :(得分:1)

您可以使用Array.prototype.includes来检查数组是否包含该值。请注意,Internet Explorer 不支持此,您可以在上述链接中找到polyfill。根据文件:

  

Array.prototype.includes

     

includes() 方法确定数组是否包含某个元素,并根据需要返回true或false。

if(myArray.includes(x)) {
    //x is in myArray
}

如果您想要这个职位,可以使用indexOf

myArray.indexOf(x);

这将搜索项目并返回位置。如果未找到,则返回-1。这可以应用于IE:

if(myArray.indexOf(x) > -1) {
    //x is in myArray
}

这确保它存在,因为它检查位置是否大于-1。

答案 1 :(得分:0)

使用indexOf并检查返回值是否大于或等于零。 indexOf返回数组中对象的索引,如果不存在则返回-1。您也可以使用includes,但尚未在所有浏览器中完全支持它。如果值存在于数组中,includes将返回true

var x = e.clientX, // horizontal mouse position
myArray = []; // I have another function that stores five values in this array
if(myArray.indexOf(x)>=0) { // one of the five array values
    //do something
}

答案 2 :(得分:0)

if (myArray.indexOf(x) > -1)
{
 // value exists - do something
}
如果值不存在于数组中,则

myArray.indexOf(x)将返回-1。 如果值存在于数组中,它将返回值索引。

更多信息:http://www.w3schools.com/jsref/jsref_indexof_array.asp

答案 3 :(得分:0)

这将告诉您某个数据库中是否存在某些内容,并且它是向后兼容的。

function inArray(val, ary){
  for(var i=0,l=ary.length; i<l; i++){
    if(ary[i] === val){
      return true;
    }
  }
  return false;
}
/*
// use inArray
if(inArray(yourValHere, yourArrayHere)){
  // it's in yourArrayHere so do stuff here
}
// use not inArray
if(!inArray(yourValHere, yourArrayHere)){
  // it's not in yourArrayHere so do stuff here
}
*/

答案 4 :(得分:0)

这是你在ES6中的表现方式

var value = 5,
  myArray = [1,2,3,4,5];
myArray.some(item => item === value); // <-- true