Новая возможность языка в ES2016: Array.prototype.includes

Array.prototype.includes — это новая возможность ECMAScript, предложенная Домиником Дениколой (Domenic Denicola) и Риком Валдроном (Rick Waldron). Она находится на четвертой стадии процесса формирования релизов, то есть готова и является частью стандарта ECMAScript 2016.

includes — новый метод Array

includes — новый метод Array. Его сигнатура:

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

Метод возвращает true, если массив содержит value, в противном случае — false:

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

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

includes подобен indexOf, следующие два выражения практически эквивалентны друг другу:

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

Основное отличие заключается в том, что includes() находит NaN, в то время как indexOf() — нет:

> [NaN].includes(NaN)
true

> [NaN].indexOf(NaN)
-1

includes не отличает +0 от -0 (что абсолютно нормально для JavaScript):

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

У типизированных массивов тоже есть метод includes():

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

Часто задаваемые вопросы

Материалы для дальнейшего изучения