Comment vérifier si un tableau contient une valeur en JavaScript ?
P粉592085423
P粉592085423 2023-08-23 11:09:10
0
2
364

Quel est le moyen le plus simple et le plus efficace de savoir si un tableau JavaScript contient une valeur ?

C'est la seule façon que je connaisse :

fonction contient(a, obj) { pour (var i = 0; i < a.length; i++) { si (a[i] === obj) { renvoie vrai ; } } renvoie faux ; } 

Existe-t-il un moyen meilleur et plus propre d’y parvenir ?

Ceci est lié à la question Stack Overflow Quelle est la meilleure façon de trouver des éléments dans un tableau JavaScript ? Étroitement liée, cette question concerne la recherche d'objets dans un tableau à l'aide de indexOf.

P粉592085423
P粉592085423

répondre à tous (2)
P粉788571316

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 ila été prouvéqu'une bouclewhiledescendante est le moyen le plus rapide d'itérer en JavaScript. Par conséquent, vous devrez peut-être réécrire votre code comme suit :

function contains(a, obj) { var i = a.length; while (i--) { if (a[i] === obj) { return true; } } return false; }

Bien sûr, vous pouvez également étendre le prototype Array :

Array.prototype.contains = function(obj) { var i = this.length; while (i--) { if (this[i] === obj) { return true; } } return false; }

Maintenant, vous pouvez simplement utiliser :

alert([1, 2, 3].contains(2)); // => true alert([1, 2, 3].contains('2')); // => false
    P粉076987386

    Les navigateurs modernes ontArray#includesquifait exactement cela etest largement pris en charge par tout le monde sauf IE:

    console.log(['joe', 'jane', 'mary'].includes('jane')); // true
      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!