--- title: Array.prototype.includes() slug: Web/JavaScript/Reference/Global_Objects/Array/includes tags: - Array - JavaScript - Method - Prototype - Reference - inArray - in_array - polyfill - メソッド translation_of: Web/JavaScript/Reference/Global_Objects/Array/includes ---
includes()
メソッドは、特定の要素が配列に含まれているかどうかを true
または false
で返します。
arr.includes(valueToFind[, fromIndex])
valueToFind
検索する値です。
メモ: 文字列や文字を比較するとき、includes()
は大文字と小文字を区別します。
fromIndex
{{optional_inline}}valueToFind
を探し始める位置です。fromIndex
が正の値の場合は、fromIndex
で見つかり、fromIndex
が負の数の場合は (fromIndex
の{{interwiki("wikipedia", "絶対値")}}だけ配列の末尾から文字数を戻った位置が検索開始地点となり)、fromIndex
または arr.length + fromIndex
で見つかります。{{jsxref("Boolean")}} で、true
は valueToFind
の値が配列内 (または、fromIndex
が指定された場合はそれで示された配列の部分) から見つかった場合です。
ゼロの値はすべて、符号にかかわらず等しいとみなされます (つまり、-0
は 0
と +0
の両方に等しいとみなされます) が、false
は 0
と同じとはみなされません。
注: 技術的に言えば、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
を返します。
let arr = ['a', 'b', 'c'] arr.includes('c', 3) // false arr.includes('c', 100) // false
fromIndex
が負の値である場合、計算値のインデックスは配列内で valueToFind
の円策を開始する位置として使用するよう計算されます。計算値のインデックスが -1 * arr.length
以下の場合は、配列全体が検索されます。
// 配列の長さは 3 // fromIndex は -100 // 補正されたインデックスは 3 + (-100) = -97 let arr = ['a', 'b', 'c'] arr.includes('a', -100) // true arr.includes('b', -100) // true arr.includes('c', -100) // true arr.includes('a', -2) // false
includes()
メソッドは意図的にジェネリックになっています。this
が Array オブジェクトであることは必須ではないので、他の種類のオブジェクト (例えば配列風オブジェクト) にも適用することができます。
以下の例は、includes()
メソッドが関数の arguments オブジェクトに対して使用される様子を示しています。
(function() { console.log(Array.prototype.includes.call(arguments, 'a')) // true console.log(Array.prototype.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 を参照して下さい。
仕様書 |
---|
{{SpecName('ESDraft', '#sec-array.prototype.includes', 'Array.prototype.includes')}} |
{{Compat("javascript.builtins.Array.includes")}}