Comment vérifier si un tableau contient une valeur en JavaScript ?
P粉592085423
2023-08-23 11:09:10
<p>Quel est le moyen le plus simple et le plus efficace de savoir si un tableau JavaScript contient une valeur ? </p>
<p>C'est la seule façon que je connaisse :</p>
<pre class="brush:php;toolbar:false;">fonction contient(a, obj) {
pour (var i = 0; i < a.length; i++) {
si (a[i] === obj) {
renvoie vrai ;
}
}
renvoie faux ;
}</pré>
<p>Existe-t-il un moyen meilleur et plus propre d’y parvenir ? </p>
<p>Ceci est lié à la question Stack Overflow <em>Quelle est la meilleure façon de trouver des éléments dans un tableau JavaScript ? </em> Étroitement liée, cette question concerne la recherche d'objets dans un tableau à l'aide de <code>indexOf</code>. </p>
Mise à jour 2019 : cette réponse date de 2008 (11 ans !) et n'a rien à voir avec l'utilisation moderne du JS. Les améliorations de performances promises sont basées sur des tests de référence effectués dans le navigateur à ce moment-là. Cela n'est peut-être pas pertinent pour le contexte d'exécution JS moderne. Si vous avez besoin d’une solution simple, recherchez d’autres réponses. Si vous avez besoin des meilleures performances, évaluez-vous dans un environnement d'exécution pertinent.
Comme d'autres l'ont dit, parcourir un tableau est probablement la meilleure façon de le faire, mais il a été prouvé qu'une boucle
while
descendante est le moyen le plus rapide d'itérer en JavaScript. Par conséquent, vous devrez peut-être réécrire votre code comme suit :Bien sûr, vous pouvez également étendre le prototype Array :
Maintenant, vous pouvez simplement utiliser :
Les navigateurs modernes ont
Array#includes
qui fait exactement cela et est largement pris en charge par tout le monde sauf IE :