В es6 вы можете использовать метод массива include(), чтобы определить, содержит ли массив определенное значение. Этот метод можно использовать для определения того, содержит ли массив определенное значение. Синтаксис: «array object.includes(value)». ".

Операционная среда этого руководства: система Windows 7, ECMAScript версии 6, компьютер Dell G3.
В ES5 Array уже предоставляет indexOf для поиска позиции элемента. Если он не существует, он возвращает -1. Однако у этой функции есть два незначительных недостатка при определении того, содержит ли массив элемент. 1 и позиция элемента используются для указания того, включен ли он. С позиционированием проблем нет, но оно недостаточно семантично. Другая проблема заключается в том, что он не может определить, есть ли элементы NaN.
Например:
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', ' к', НаН]
console.log('%s', arr1.indexOf(NaN)) результат:
-1
ES6 предоставляет функцию Array.includes(), чтобы определить, включен ли определенный элемент. Помимо невозможности его найти, она решает проблему. выше две проблемы indexOf . Он напрямую возвращает true или false, чтобы указать, содержит ли он элемент, а также эффективен для NaN.
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', НЭН]
console.log('%s', arr1.includes('c'))
console.log('%s', arr1.includes('z'))
console.log('%s', arr1.includes(NaN)) результат:
true ЛОЖЬ
Второй параметр функции
trueinclude() указывает начальную позицию решения.
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', НЭН]
console.log('%s', arr1.includes('d', 1))
console.log('%s', arr1.includes('d', 3))
console.log('%s', arr1.includes('d', 4)) результат:
true истинный falseВторой
параметр также может быть отрицательным числом, указывающим число справа, но не меняет направление поиска, направление поиска по-прежнему слева направо.
console.log('%s', arr1.includes('k', -1))
console.log('%s', arr1.includes('k', -2))
console.log('%s', arr1.includes('i', -3)) результат:
ложь истинный ложное
резюме:
метод include(), используемый для определения того, содержит ли массив определенное значение, может оценивать NaN и напрямую возвращает true/false, что более интуитивно понятно,
метод indexOf(), используемый для определения положения элемента, не может; судья NaN возвращает -1, что означает, что позиция не включена, а не-1 означает текущую включенную позицию.
Оба метода имеют свои преимущества и недостатки, которые зависят от реальной ситуации. Если элемент содержит NaN, используйте include(), в противном случае можно использовать любой из них.