JavaScriptで文字列配列から特定の文字列を検索する方法
Array.findIndex()
を使うと配列内の要素に任意の条件を持つ要素が存在するかを判定できます。
結果は条件に一致した最初の要素の位置です。条件に一致した要素がない場合は-1
を返します。
下記は文字列の配列から、任意の文字列を持つ要素を検索する例です。
const strings = ['abc', 'asn', 'ann', 'abn', 'baan', 'aann'];
console.log(strings.findIndex((element) => element.match(/.*an.*/))); // 2
パラメータ
element
- 配列内で現在処理されている要素index
- 配列内で現在処理されている要素の位置(省略可)array
-findIndex
呼び出し元の配列(省略可)
const strings = ['abc', 'asn', 'ann', 'abn', 'baan', 'aann'];
console.log(strings.findIndex((element, index, array) => {
console.log(index, array)
return element.match(/.*an.*/);
}));
実行結果
> 0 Array ["abc", "asn", "ann", "abn", "baan", "aann"]
> 1 Array ["abc", "asn", "ann", "abn", "baan", "aann"]
> 2 Array ["abc", "asn", "ann", "abn", "baan", "aann"]
> 2
下記は検索文字列を可変にするサンプルです。文字列ではなくRegExp
を使用します。
const strings = ['abc', 'asn', 'ann', 'abn', 'baan', 'aann'];
const arg = 'aa';
const regexp = new RegExp(`.*${arg}.*`);
console.log(strings.findIndex((element) => element.match(regexp))); // 4