2016-09-28 16 views
-1

5つの値を配列に格納するので、設定した変数がこれらの値のいずれかと等しいかどうかを確認する必要があります。ここで私が何を意味するかです:変数が5つの配列値のいずれかと等しいかどうかをテストする方法

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 
} 

おかげで...

+0

ループでそれを行う方法です。 – PHPglue

+0

あなたはその特定の位置を知る必要がありますか? – Li357

+0

@Andrew L 'myArray [0]'、 'myArray [1]'、 'myArray [2]'のような値の位置を意味しますか?その場合、いいえ。必要なのはその価値だけです。 – thinoquinn

答えて

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より大きいかどうかを確認するために存在します。

+0

IEではサポートされていません。 – PHPglue

+0

@PHPglue修正してください。 – Li357

+0

ありがとうございました!私のコードでは、 'if(x-50> = someVar && x + 50 <= someVar)'のように値の_range_を定義したいと思います。 'someVar'が' myArray'の値であると仮定すると、 'if(myArray.indexOf(x - 50)> -1 && myArray.indexOf(x + 50)> -1)'は前のステートメントと同じです? – thinoquinn

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 
} 
0
if (myArray.indexOf(x) > -1) 
{ 
// value exists - do something 
} 

myArray.indexOf(x)が返され-1値がアレイ内に存在しない場合。 値のインデックスが配列内に存在する場合、そのインデックスを返します。

ここ

より:http://www.w3schools.com/jsref/jsref_indexof_array.asp

+0

W3Schoolsは最も信頼できる文書ではない – Li357

+0

@AndrewL。 [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)は信頼できると考えられますか? – DFriend

+0

@DFriend [こちら](http://meta.stackoverflow.com/q/280478/5647260) – Li357

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 
} 
*/ 
0

これは、アレイ上ES6

var value = 5, 
    myArray = [1,2,3,4,5]; 
myArray.some(item => item === value); // <-- true 
関連する問題