Dans es6, vous pouvez utiliser la méthode include() du tableau pour déterminer si le tableau contient une certaine valeur. Cette méthode peut être utilisée pour détecter si le tableau contient une certaine valeur. La syntaxe est "array object.includes(value)". ".
L'environnement d'exploitation de ce tutoriel : système Windows 7, ECMAScript version 6, ordinateur Dell G3.
Dans ES5, Array fournit déjà indexOf pour trouver la position d'un élément, s'il n'existe pas, il renvoie -1. Cependant, cette fonction présente deux défauts mineurs pour déterminer si le tableau contient un élément. Le premier est qu'il renvoie -. 1 et la position de l'élément servent à indiquer s'il est inclus. Il n'y a pas de problème en termes de positionnement, mais ce n'est pas assez sémantique. Un autre problème est qu’il ne peut pas déterminer s’il existe des éléments NaN.
Par exemple :
const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', ' k', NaN] console.log('%s', arr1.indexOf(NaN))
résultat :
-1
ES6 fournit la fonction Array.includes() pour déterminer si un certain élément est inclus. En plus de ne pas pouvoir le localiser, il résout le problème. ci-dessus deux problèmes de indexOf. Il renvoie directement true ou false pour indiquer s'il contient un élément, et il est également efficace pour 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))
résultat :
vrai FAUX
Le deuxième paramètre de la
fonctiontrueinclude() indique la position de départ du jugement.
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))
résultat :
vrai vrai falseLe
deuxième paramètre peut également être un nombre négatif, indiquant le nombre à droite, mais ne change pas le sens de la recherche, le sens de recherche est toujours de gauche à droite.
console.log('%s', arr1.includes('k', -1)) console.log('%s', arr1.includes('k', -2)) console.log('%s', arr1.includes('i', -3))
résultat :
faux vrai false
résumé :
la méthode include(), utilisée pour détecter si un tableau contient une certaine valeur, peut juger NaN et renvoie directement true/false, qui est plus intuitive,
la méthode indexOf(), utilisée pour trouver la position d'un élément, ne peut pas le faire ; juge NaN , renvoie -1, ce qui signifie qu'il n'est pas inclus, et non-1 signifie la position actuellement incluse.
Les deux méthodes ont leurs propres avantages et inconvénients, qui dépendent de la situation réelle. Si l'élément contient NaN, utilisez include(), sinon l'un ou l'autre peut être utilisé.