includes() メソッドは、特定の要素が配列に含まれているかどうかを true または false で返します。与えられた要素が見つかるかどうかを計算するために、 SameValueZero (ゼロの同値) アルゴリズムを使用します。
このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。
構文
arr.includes(valueToFind[, fromIndex])
引数
valueToFind-
検索する値です。
メモ: 文字列や文字を比較するとき、
includes()は大文字と小文字を区別します。 fromIndexOptional- この配列内で
valueToFindを探し始める位置です。検索される最初の文字は、fromIndexが正の値の場合は、fromIndexで見つかり、fromIndexが負の数の場合は (fromIndexの絶対値だけ配列の末尾から文字数を戻った位置が検索開始地点となり)、fromIndexまたはarray.length + fromIndexで見つかります。既定値は0です。
返値
Boolean で、 true は valueToFind の値が配列内 (または、 fromIndex が指定された場合はそれで示された配列の部分) から見つかった場合です。ゼロの値はすべて、符号にかかわらず等しいとみなされます (つまり、 -0 は 0 と +0 の両方に等しいとみなされます) が、 false は 0 と同じとはみなされません。
Note: 技術的に言えば、 includes() は sameValueZero アルゴリズムを使用して、指定された要素が見つかったかどうかを確認しています。
例
[1, 2, 3].includes(2); // true [1, 2, 3].includes(4); // false [1, 2, 3].includes(3, 3); // false [1, 2, 3].includes(3, -1); // true [1, 2, NaN].includes(NaN); // true
fromIndex が配列の長さと同じか大きい場合
fromIndex が配列の長さと同じか大きい場合は配列を検索せずに false を返します。
var arr = ['a', 'b', 'c'];
arr.includes('c', 3); // false
arr.includes('c', 100); // false
補正されたインデックスが0より小さい場合
fromIndex が負の値である場合、searchElement を検索する配列中の起点として補正されたインデックスを算出します。補正されたインデックスが0より小さい場合は配列のすべてを検索します。
// 配列の長さは 3
// fromIndex は -100
// 補正されたインデックスは 3 + (-100) = -97
var arr = ['a', 'b', 'c'];
arr.includes('a', -100); // true
arr.includes('b', -100); // true
arr.includes('c', -100); // true
arr.includes('a', -2); // false
Array ではないオブジェクトでincludes()を使う
includes() は意図的に一般化されています。元の値が配列である必要がないため、他の種類の (配列風の) オブジェクトにも適用することができます。以下は includes() メソッドが関数の arguments オブジェクトに対して使用された場合の例です。
(function() {
console.log([].includes.call(arguments, 'a')); // true
console.log([].includes.call(arguments, 'd')); // false
})('a','b','c');
参照記事にポリフィルを追加しないでください。詳細や議論については、 https://discourse.mozilla.org/t/mdn-rfc-001-mdn-wiki-pages-shouldnt-be-a-distributor-of-polyfills/24500 を参照して下さい。
仕様書
| 仕様書 | 状態 | 備考 |
|---|---|---|
| ECMAScript (ECMA-262) Array.prototype.includes の定義 |
現行の標準 | |
| ECMAScript 2016 (ECMA-262) Array.prototype.includes の定義 |
標準 | 初回定義 |
ブラウザーの互換性
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
includes | Chrome 完全対応 47 | Edge 完全対応 14 | Firefox 完全対応 43 | IE 未対応 なし | Opera 完全対応 34 | Safari 完全対応 9 | WebView Android 完全対応 47 | Chrome Android 完全対応 47 | Firefox Android 完全対応 43 | Opera Android 完全対応 34 | Safari iOS 完全対応 9 | Samsung Internet Android 完全対応 5.0 | nodejs
完全対応
6.0.0
|
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応
- ユーザーが明示的にこの機能を有効にしなければなりません。
- ユーザーが明示的にこの機能を有効にしなければなりません。