JavaScriptで文字列や配列が特定の文字列を含むか検索する方法
今回は、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が”山田”のレコードがある場合に”ヒット”という文字列をログに出力しています。