Table of contents
Please support this book: buy it (PDF, EPUB, MOBI) or donate
(Ad, please don’t block.)

3. Array.prototype.includes

This chapter describes the ECMAScript 2016 feature “Array.prototype.includes” by Domenic Denicola and Rick Waldron.

3.1 Overview

> ['a', 'b', 'c'].includes('a')
true
> ['a', 'b', 'c'].includes('d')
false

3.2 The Array method includes

The Array method includes has the following signature:

Array.prototype.includes(value : any) : boolean

It returns true if value is an element of its receiver (this) and false, otherwise:

> ['a', 'b', 'c'].includes('a')
true
> ['a', 'b', 'c'].includes('d')
false

includes is similar to indexOf – the following two expressions are mostly equivalent:

arr.includes(x)
arr.indexOf(x) >= 0

The main difference is that includes() finds NaN, whereas indexOf() doesn’t:

> [NaN].includes(NaN)
true
> [NaN].indexOf(NaN)
-1

includes does not distinguish between +0 and -0 (which is how almost all of JavaScript works):

> [-0].includes(+0)
true

Typed Arrays will also have a method includes():

let tarr = Uint8Array.of(12, 5, 3);
console.log(tarr.includes(5)); // true

3.3 Frequently asked questions

3.4 Further reading

Next: 4. Exponentiation operator (**)