JavaScriptで文字列や配列が特定の文字列を含むか検索する方法

PROGRAM

今回は、JavaScriptで文字列や配列が特定の文字列を含むか検索する方法について、文字列と配列の場合に分け、簡単に解説していきます。

文字列が特定の文字列を含むか検索する方法

JavaScriptで文字列が特定の文字列を含むか検索するには、StringのindexOfメソッドを使います。

StringのindexOfメソッドでは、引数に検索文字列を指定することで、検索文字列が含まれる場合に開始位置を返します。

var str = "あいうえお";
if(str.indexOf('あいう') >= 0){
    // "あいう"を含む場合
    console.log("ヒット");
}

上記のコードでは、strという文字列型の変数の値に、”あいう”という文字列が含まれる場合に”ヒット”という文字列をログに出力しています。

配列が特定の文字列を含むか検索する方法

JavaScriptで配列が特定の文字列を含むか検索する場合も、ArrayのindexOfメソッドを使います。

ArrayのindexOfメソッドも、引数に検索文字列を指定することで、、検索文字列が含まれる場合に対象の要素の添字を返します。

var arr = ["あ","い","う","え","お"];
if (arr.indexOf("あ") >= 0){
    // "あ"の要素を含む場合
    console.log("ヒット");
}

上記のコードでは、arrという配列の中に、”あ”という文字列が要素の値に含まれる場合に”ヒット”という文字列をログに出力しています。

多次元配列で値を含むか検索する方法

JavaScriptで多次元配列の値を含むか検索する場合、Arrayのsomeメソッドを使います。

Arrayのsomeメソッドはコールバック関数のため、戻り値に一致条件を指定することで含むか判断可能です。

var students = [
    {
        "name":"山田",
        "age":20,
        "gender":"男性",
    },
    {
        "name":"田中",
        "age":21,
        "gender":"女性",
    },
    {
        "name":"髙橋",
        "age":19,
        "gender":"男性",
    }
];
var result = students.some(function(value) {
    return value.name === "山田";
});
if (result) {
    // nameが"山田"のレコードがある場合
    console.log("ヒット");
}

上記のコードでは、studentsの多次元配列の中にnameが”山田”のレコードがある場合に”ヒット”という文字列をログに出力しています。