web-dev-qa-db-ja.com

JavaScriptで文字列配列に1つの文字列が含まれているかどうかを確認する方法

文字列配列と1つの文字列があります。この文字列を配列の値と照らし合わせてテストし、結果に条件を適用します。配列に文字列が含まれている場合は "A"、それ以外の場合は "B"とします。

どうやってやるの?

200
gtludwig

すべての配列に含まれる indexOf メソッドがあり(Internet Explorer 8以下を除く)、配列内の要素のインデックスを返します。配列内にない場合は-1を返します。

if (yourArray.indexOf("someString") > -1) {
    //In the array!
} else {
    //Not in the array
}

古いIEブラウザをサポートする必要がある場合は、 MDNの記事 のコードを使用してこのメ​​ソッドを入力してください。

370
James Allardice

indexOfメソッドを使用して、次のようにメソッドcontainsを使用してArrayクラスを「拡張」できます。

Array.prototype.contains = function(element){
    return this.indexOf(element) > -1;
};

以下の結果が得られます。

["A", "B", "C"].contains("A")trueに等しい

["A", "B", "C"].contains("D")falseに等しい

52
fableal
var stringArray = ["String1", "String2", "String3"];

return (stringArray.indexOf(searchStr) > -1)
24
FixMaker

この関数プロトタイプを作成してください。

Array.prototype.contains = function ( needle ) {
   for (i in this) {
      if (this[i] == needle) return true;
   }
   return false;
}

そして、次のコードを使って配列xを検索できます。

if (x.contains('searchedString')) {
    // do a
}
else
{
      // do b
}
9
eridanix

これはあなたのためにそれを行います:

function inArray(needle, haystack) {
    var length = haystack.length;
    for(var i = 0; i < length; i++) {
        if(haystack[i] == needle)
            return true;
    }
    return false;
}

私はそれをStack Overflow questionPHPのin_array()に相当するJavaScriptで見つけました。

5
ollie