JavaScriptのincludes()とは?配列・文字列の存在チェックを徹底解説

JavaScriptのincludes()による配列や文字列の存在チェックをイメージした抽象的なビジュアル
JavaScriptのincludes()を使った存在チェックの仕組みをイメージしたアイキャッチ画像

JavaScriptのincludes()は、配列や文字列の中に特定の値が含まれているかどうかを判定するためのメソッドです。
条件分岐やデータの検証など、実務でも頻繁に使用される基本的な機能のひとつです。

本記事では、includes()の基本から実践的な使い方までを体系的に解説します。

includes()とは

includes()は、指定した値が含まれているかどうかを判定し、結果をtrueまたはfalseで返します。

const numbers = [1, 2, 3, 4, 5];

console.log(numbers.includes(3)); // true
console.log(numbers.includes(10)); // false

このように、「存在しているかどうか」をシンプルに判定できるのが特徴です。

配列でのincludes()の使い方

基本構文

array.includes(検索値, 開始位置);
  • 検索値:探したい値
  • 開始位置(省略可):検索を開始するインデックス

基本例

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

console.log(fruits.includes('banana')); // true
console.log(fruits.includes('grape')); // false

開始位置を指定する

const numbers = [1, 2, 3, 4, 5];

console.log(numbers.includes(2, 2)); // false(インデックス2以降から検索)

文字列でのincludes()の使い方

文字列にもincludes()が使えます。

基本例

const message = 'JavaScriptは楽しい言語です';

console.log(message.includes('楽しい')); // true
console.log(message.includes('難しい')); // false

大文字・小文字に注意

const text = 'JavaScript';

console.log(text.includes('javascript')); // false

includes()は大文字・小文字を区別します。必要に応じて変換してから使用します。

const text = 'JavaScript';

console.log(text.toLowerCase().includes('javascript')); // true

includes()の戻り値

includes()の戻り値は必ず真偽値です。

const list = ['a', 'b', 'c'];

const result = list.includes('b');

console.log(result); // true

条件分岐と組み合わせて使うことが一般的です。

const users = ['taro', 'jiro', 'saburo'];

if (users.includes('taro')) {
  console.log('ユーザーが存在します');
}

indexOf()との違い

includes()と似た機能にindexOf()があります。

const items = ['a', 'b', 'c'];

console.log(items.indexOf('b')); // 1
console.log(items.includes('b')); // true

違いのポイント

  • indexOf():位置(インデックス)を返す
  • includes():存在の有無(true / false)を返す

存在チェックだけであれば、includes()の方が直感的で読みやすくなります。

NaNの判定ができる

includes()NaNも正しく判定できます。

const values = [1, 2, NaN];

console.log(values.includes(NaN)); // true

一方でindexOf()では判定できません。

const values = [1, 2, NaN];

console.log(values.indexOf(NaN)); // -1

オブジェクト配列での注意点

includes()は参照を比較するため、オブジェクトの場合は注意が必要です。

const obj1 = { id: 1 };
const obj2 = { id: 1 };

const list = [obj1];

console.log(list.includes(obj1)); // true
console.log(list.includes(obj2)); // false

値ではなく「同じ参照かどうか」を見ています。

実務での活用例

入力チェック

const allowedRoles = ['admin', 'editor', 'viewer'];

const role = 'admin';

if (allowedRoles.includes(role)) {
  console.log('アクセス許可');
}

条件分岐の簡略化

const status = 'pending';

if (['pending', 'processing'].includes(status)) {
  console.log('処理中の状態です');
}

includes()を使うメリット

コードがシンプルになる

// indexOf()
if (items.indexOf('a') !== -1) {}

// includes()
if (items.includes('a')) {}

可読性が高い

「含まれているかどうか」がそのままコードに表れるため、理解しやすくなります。

よくある注意点

型の違いに注意

const numbers = [1, 2, 3];

console.log(numbers.includes('1')); // false

型が異なると一致しません。

部分一致ではない

const list = ['apple'];

console.log(list.includes('app')); // false

完全一致のみ判定されます。

他の配列メソッドとの関係

配列操作では、includes()とあわせて他のメソッドもよく使われます。

これらを組み合わせることで、より柔軟なデータ処理が可能になります。

まとめ

includes()は、配列や文字列に特定の値が含まれているかを判定するシンプルで強力なメソッドです。

  • 存在チェックを簡潔に書ける
  • 真偽値で結果を取得できる
  • NaNも正しく判定できる
  • 可読性が高い

JavaScriptの基礎として非常に重要なメソッドのため、確実に理解しておくことが大切です。

関連記事