En es6, puede usar el método include() de la matriz para determinar si la matriz contiene un valor determinado. Este método se puede usar para detectar si la matriz contiene un valor determinado. La sintaxis es "objeto de matriz.incluye (valor). ".
El entorno operativo de este tutorial: sistema Windows 7, ECMAScript versión 6, computadora Dell G3.
En ES5, Array ya proporciona indexOf para encontrar la posición de un elemento. Si no existe, devuelve -1. Sin embargo, esta función tiene dos deficiencias menores al determinar si la matriz contiene un elemento. 1 y la posición del elemento se utilizan para indicar si está incluido. No hay problema en términos de posicionamiento, pero no es lo suficientemente semántico. Otro problema es que no puede determinar si hay elementos NaN.
Por ejemplo:
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', ' k', NaN] console.log('%s', arr1.indexOf(NaN))
resultado:
-1
ES6 proporciona la función Array.includes() para determinar si un determinado elemento está incluido. Además de no poder localizarlo, resuelve el problema. Dos problemas anteriores de indexOf. Devuelve verdadero o falso directamente para indicar si contiene un elemento y también es efectivo para NaN.
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', Yaya] console.log('%s', arr1.includes('c')) console.log('%s', arr1.includes('z')) console.log('%s', arr1.includes(NaN))
resultado:
verdadero FALSO
El segundo parámetro de la
funcióntrueinclude() indica la posición inicial del juicio.
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', Yaya] console.log('%s', arr1.includes('d', 1)) console.log('%s', arr1.includes('d', 3)) console.log('%s', arr1.includes('d', 4))
resultado:
verdadero verdadero falsoEl
segundo parámetro también puede ser un número negativo, que indica el número de la derecha, pero no cambia la dirección de la búsqueda, la dirección de la búsqueda sigue siendo de izquierda a derecha.
console.log('%s', arr1.includes('k', -1)) console.log('%s', arr1.includes('k', -2)) console.log('%s', arr1.includes('i', -3))
resultado:
falso verdadero
resumen
falso:
el método incluye (), utilizado para detectar si una matriz contiene un determinado valor, puede juzgar NaN y devuelve directamente verdadero/falso, que es más intuitivo.
El método indexOf (), utilizado para encontrar la posición de un elemento, no puede; juzgue NaN, devuelve -1, lo que significa que no está incluido, y no-1 significa la posición incluida actual.
Ambos métodos tienen sus propias ventajas y desventajas, que dependen de la situación real. Si el elemento contiene NaN, utilice include(); de lo contrario, se puede utilizar cualquiera de los dos.