JavaScriptのincludes()メソッドで配列内の特定の単語を検索する方法
配列の中から特定の単語を見つけたい場合は、includes()メソッドを使うのが最も手軽です。まず、次のような文章を要素として持つ配列を用意します。
var sentence = ["My Name is John Smith. My Favourite Subject is JavaScript. I live in US. I like Hockey"];
続いて、上記の「sentence」配列の中から検索したいキーワードをまとめた配列を定義します。
var keywords = ["John", "AUS", "JavaScript", "Hockey"];
サンプルコード
以下が実際のコードです。外側のループで文(sentence)、内側のループでキーワード(keywords)を順番に取り出し、includes()によって各キーワードが文中に含まれているかを判定しています。一致したキーワードはmatched配列に追加されます。
var keywords = ["John", "AUS", "JavaScript", "Hockey"];
var sentence = ["My Name is John Smith. My Favourite Subject is JavaScript. I live in US. I like Hockey"];
const matched = [];
for (var index = 0; index < sentence.length; index++) {
for (var outerIndex = 0; outerIndex < keywords.length; outerIndex++) {
if (sentence[index].includes(keywords[outerIndex])) {
matched.push(keywords[outerIndex]);
}
}
}
console.log("The matched keywords are==");
console.log(matched);プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で次のコマンドを使用します。
node fileName.js
ここでは、ファイル名を「demo226.js」としています。
実行結果
実行結果は以下の通りです。
PS C:\Users\Amit\JavaScript-code> node demo226.js The matched keywords are== [ 'John', 'JavaScript', 'Hockey' ]
この結果から、「John」「JavaScript」「Hockey」の3つのキーワードが文中で見つかったことがわかります。「AUS」は文中に存在しないため、マッチしていません。
注意点
includes()メソッドは大文字と小文字を区別します。たとえば「javascript」と指定しても「JavaScript」にはマッチしません。大文字小文字を区別せずに検索したい場合は、比較前にtoLowerCase()などで文字列を正規化してください。また、部分一致による判定のため、「John」が「Johnson」の一部としてヒットする可能性があることにも注意しましょう。
-
JavaScript配列で要素を検索する方法を徹底解説!find()メソッドの使い方
JavaScriptで配列の中から特定の要素を検索したい場面は非常に多くあります。本記事では、最もよく使われるfind()メソッドを中心に、実際に動作するサンプルコードとともに分かりやすく解説します。 find()メソッドとは find()メソッドは、配列の各要素に対して指定したテスト関数(コールバック関数)を実行し、条件を満たした最初の要素の値を返します。条件に一致する要素が存在しない場合は undefined を返します。 基本構文 arr.find(callback(element[, index[, array]])[, thisArg]) callback: 各要素をテストする関数
-
複数の値でJavaScript配列の要素を検索する方法
JavaScriptである配列(arr)が、別の配列(arr1)の複数の値・すべての要素を含んでいるかどうかを確認したい場面はよくあります。そんなときは、every()メソッドとincludes()メソッドを組み合わせることで、シンプルに判定できます。以下はそのサンプルコードです。 コード例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content=