No es6, você pode usar o método include() do array para determinar se o array contém um determinado valor. Este método pode ser usado para detectar se o array contém um determinado valor. ".

O ambiente operacional deste tutorial: sistema Windows 7, ECMAScript versão 6, computador Dell G3.
No ES5, Array já fornece indexOf para encontrar a posição de um elemento. Se não existir, ele retorna -1. No entanto, esta função tem duas pequenas deficiências ao determinar se o array contém um elemento. 1 e a posição do elemento são utilizadas para indicar se ele está incluído. Não há problema em termos de posicionamento, mas não é suficientemente semântico. Outro problema é que ele não consegue determinar se existem elementos NaN.
Por exemplo:
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', ' k', NaN]
console.log('%s', arr1.indexOf(NaN)) resultado:
-1
ES6 fornece a função Array.includes() para determinar se um determinado elemento está incluído. acima de dois problemas de indexOf . Ele retorna diretamente verdadeiro ou falso para indicar se contém um elemento e também é eficaz para NaN.
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]
console.log('%s', arr1.includes('c'))
console.log('%s', arr1.includes('z'))
console.log('%s', arr1.includes(NaN)) resultado:
verdadeiro falso
O segundo parâmetro da
funçãotrueinclude() indica a posição inicial do julgamento.
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]
console.log('%s', arr1.includes('d', 1))
console.log('%s', arr1.includes('d', 3))
console.log('%s', arr1.includes('d', 4)) resultado:
verdadeiro verdadeiro falsoO
segundo parâmetro também pode ser um número negativo, indicando o número da direita, mas não altera a direção da pesquisa, a direção da pesquisa ainda é da esquerda para a direita.
console.log('%s', arr1.includes('k', -1))
console.log('%s', arr1.includes('k', -2))
console.log('%s', arr1.includes('i', -3)) resultado:
falso verdadeiro
resumo
falso:
o método include(), usado para detectar se um array contém um determinado valor, pode julgar NaN e retorna diretamente verdadeiro/falso, que é mais intuitivo.
O método indexOf(), usado para encontrar a posição de um elemento, não pode; juiz NaN , retorna -1, o que significa que não está incluído, e não-1 significa a posição incluída atual.
Ambos os métodos têm suas próprias vantagens e desvantagens, que dependem da situação real. Se o elemento contiver NaN, use include(), caso contrário, qualquer um poderá ser usado.