262

文字列配列と1つの文字列があります。この文字列を配列の値に対してテストし、結果に条件を適用したいと思います。配列に文字列が含まれている場合は「A」、そうでない場合は「B」を実行します。

どうやってやるの?

4

5 に答える 5

463

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

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

古いIEブラウザーをサポートする必要がある場合は、MDNの記事のコードを使用してこのメ​​ソッドをポリフィルできます。

于 2012-09-27T14:06:54.877 に答える
65

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

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

次の結果が得られます。

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

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

于 2012-09-27T14:10:15.867 に答える
30
var stringArray = ["String1", "String2", "String3"];

return (stringArray.indexOf(searchStr) > -1)
于 2012-09-27T14:08:32.300 に答える
9

この関数プロトタイプを作成します。

Array.prototype.contains = function ( needle ) {
   for (var i in this) { // Loop through every item in array
      if (this[i] == needle) return true; // return true if current item == needle
   }
   return false;
}

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

if (x.contains('searchedString')) {
    // do a
}
else
{
      // do b
}
于 2012-09-27T14:11:08.223 に答える
5

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

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 question JavaScript equals of PHP's in_array() で見つけました。

于 2012-09-27T14:07:16.840 に答える