JavaScriptで文字列の配列からマッチするものを検索する

Array.findIndex()を使うと配列内の要素に任意の条件を持つ要素が存在するかを判定できます。
結果は条件に一致した最初の要素の位置です。条件に一致した要素がない場合は-1を返します。

下記は文字列の配列から、任意の文字列を持つ要素を検索する例です。

const strings = ['abc', 'asn', 'ann', 'abn', 'baan', 'aann'];
console.log(strings.findIndex((element) => element.match(/.*an.*/))); // 2
パラメータ
  • element – 配列内で現在処理されている要素
  • index – 配列内で現在処理されている要素の位置(省略可)
  • arrayfindIndex呼び出し元の配列(省略可)
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
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

関連コンテンツ

スポンサードリンク

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です