【徹底解説】JavaScriptで配列に値が含まれているかどうかを確認する方法!メリット・デメリットと使い分け

2024-04-05

JavaScriptで配列に値が含まれているかどうかを確認する方法

includes() メソッドを使う

概要:

includes() メソッドは、配列内に指定された値が存在するかどうかを調べ、存在する場合は true 、存在しない場合は false を返します。

例:

const fruits = ["apple", "banana", "orange"];

// "banana" が存在するかどうかを確認
const isBananaIncluded = fruits.includes("banana");

console.log(isBananaIncluded); // true

メリット:

  • シンプルで分かりやすい
  • 配列内の要素の順序を考慮しない
  • 比較的新しいメソッドなので、多くのブラウザでサポートされている
  • 古いブラウザではサポートされていない

使い分け:

シンプルで分かりやすい方法を探している場合、includes() メソッドを使うのがおすすめです。

some() メソッドを使う

some() メソッドは、配列内の要素を一つずつ検査し、条件に合致する要素が存在するかどうかを調べます。条件に合致する要素が存在する場合は true 、存在しない場合は false を返します。

const fruits = ["apple", "banana", "orange"];

// 価格が 100 円以上の商品が存在するかどうかを確認
const isExpensiveFruitExists = fruits.some((fruit) => fruit.price >= 100);

console.log(isExpensiveFruitExists); // false
  • 配列内の要素に対して、条件を指定して検索できる
  • includes() メソッドよりも複雑

配列内の要素に対して、条件を指定して検索したい場合、some() メソッドを使うのがおすすめです。

find() メソッドを使う

find() メソッドは、配列内の要素を一つずつ検査し、条件に合致する最初の要素を見つけます。条件に合致する要素が見つかった場合はその要素を返し、見つからなかった場合は undefined を返します。

const fruits = ["apple", "banana", "orange"];

// 価格が 100 円以上の最初の商品を見つける
const expensiveFruit = fruits.find((fruit) => fruit.price >= 100);

console.log(expensiveFruit); // undefined
  • 条件に合致する要素が複数存在する場合、最初の要素しか見つけられない

上記で紹介した3つの方法は、それぞれ異なるメリット・デメリットがあります。状況に応じて適切な方法を選択してください。




サンプルコード 1: includes() メソッドを使う

const fruits = ["apple", "banana", "orange"];

// "banana" が存在するかどうかを確認
const isBananaIncluded = fruits.includes("banana");

console.log(isBananaIncluded); // true

サンプルコード 2: some() メソッドを使う

const fruits = [
  { name: "apple", price: 100 },
  { name: "banana", price: 200 },
  { name: "orange", price: 300 },
];

// 価格が 100 円以上の商品が存在するかどうかを確認
const isExpensiveFruitExists = fruits.some((fruit) => fruit.price >= 100);

console.log(isExpensiveFruitExists); // true

サンプルコード 3: find() メソッドを使う

const fruits = [
  { name: "apple", price: 100 },
  { name: "banana", price: 200 },
  { name: "orange", price: 300 },
];

// 価格が 100 円以上の最初の商品を見つける
const expensiveFruit = fruits.find((fruit) => fruit.price >= 100);

console.log(expensiveFruit); // { name: "apple", price: 100 }
  • indexOf() メソッド: 配列内の指定された値のインデックスを返します。

これらの方法は、includes() メソッドよりも古く、多くのブラウザでサポートされています。ただし、includes() メソッドよりも冗長なコードになるため、現在はあまり使用されていません。

JavaScriptで配列に値が含まれているかどうかを確認するには、いくつかの方法があります。状況に応じて適切な方法を選択してください。




JavaScriptで配列に値が含まれているかどうかを確認するその他の方法

indexOf() メソッドを使う

indexOf() メソッドは、配列内の指定された値の最初のインデックスを返します。値が見つからない場合は -1 を返します。

const fruits = ["apple", "banana", "orange"];

// "banana" のインデックスを取得
const indexOfBanana = fruits.indexOf("banana");

console.log(indexOfBanana); // 1
  • 値が見つからなかった場合、-1 を返すため、真偽値で判定する必要がある

古いブラウザで動作させる必要がある場合、indexOf() メソッドを使うのがおすすめです。

lastIndexOf() メソッドを使う

const fruits = ["apple", "banana", "banana"];

// "banana" の最後のインデックスを取得
const lastIndexOfBanana = fruits.lastIndexOf("banana");

console.log(lastIndexOfBanana); // 2

配列内に同じ値が複数存在する場合、最後のインデックスを取得したいときに lastIndexOf() メソッドを使うのがおすすめです。

for ループを使う

for ループを使って、配列内の要素を一つずつ検査し、指定された値と一致するかどうかを確認することができます。

const fruits = ["apple", "banana", "orange"];

// "banana" が存在するかどうかを確認
let isBananaIncluded = false;
for (const fruit of fruits) {
  if (fruit === "banana") {
    isBananaIncluded = true;
    break;
  }
}

console.log(isBananaIncluded); // true
  • どのブラウザでも動作する
  • 他の方法よりも冗長なコードになる

シンプルな方法で実装したい場合、for ループを使うのがおすすめです。

while ループを使う

const fruits = ["apple", "banana", "orange"];

// "banana" が存在するかどうかを確認
let isBananaIncluded = false;
let i = 0;
while (i < fruits.length && !isBananaIncluded) {
  if (fruits[i] === "banana") {
    isBananaIncluded = true;
  }
  i++;
}

console.log(isBananaIncluded); // true

javascript arrays algorithm


JavaScript、HTML、Canvasでキャンバスをクリアして再描画する方法

まず、HTMLファイルにCanvas要素を追加する必要があります。id属性は、JavaScriptからCanvas要素を取得するために使用されます。 widthとheight属性は、Canvas要素の幅と高さをピクセル単位で指定します。次に、JavaScriptファイルでCanvas要素を取得し、描画コンテキストを取得する必要があります。...


JavaScriptでURLを新しいタブで開く!サンプルコード付き

window. open()は、新しいウィンドウまたはタブを開くためのJavaScriptの標準関数です。この関数は、以下の引数を受け取ります。URL: 開きたいURLウィンドウの名前(オプション)例:_blankという名前は、新しいタブでウィンドウを開くことを指定します。...


JavaScriptのコードを簡潔にするための矢印関数の使い方

この解説では、JavaScriptにおける複数の矢印関数の意味と使い方について、ReactJSとECMAScript-6の観点も含めて詳しく説明します。矢印関数は、以下の特徴を持つ関数です。簡潔な構文: 関数キーワード (function) の代わりに => を使用します。...


ReactJSでJSX内に条件分岐を実装:三項演算子、論理演算子、if-else文を徹底比較

三項演算子最も簡潔でよく使われる方法です。条件式を ? 演算子で記述し、それに続く : で真偽の値に対応する要素を指定します。論理演算子 &&条件式を && 演算子で記述し、その後にレンダリングしたい要素を直接記述します。条件が真の場合のみ要素がレンダリングされます。...


SQL SQL SQL SQL Amazon で見る



【初心者向け】JavaScript配列:要素の存在確認をマスターしよう!

includes メソッドincludes メソッドは、配列内に指定された要素が存在するかどうかを最も簡単に確認できる方法です。長所:コードがシンプルで分かりやすい配列の要素数に関わらず、常に一定時間で処理が完了する古いブラウザではサポートされていない


includes vs some vs find vs indexOf vs forEach:どれを使うべき?

includes() メソッドは、配列が指定した要素を含んでいるかどうかを判定します。最も簡潔で分かりやすい方法です。some() メソッドは、配列の要素全てに条件関数を適用し、その結果に真偽値を返します。find() メソッドは、条件に合致する最初の要素を返します。


配列探索の極意!JavaScriptで要素の存在を確認する5つの方法

JavaScriptで配列内に特定の要素が存在するかどうかを確認するには、いくつかの方法があります。それぞれの特徴と使い分けを以下に説明します。indexOf メソッドを使う最も基本的な方法は、indexOfメソッドを使うことです。このメソッドは、引数に渡された要素が配列内に最初に現れるインデックスを返します。要素が見つからない場合は -1 を返します。