Maison > Questions et réponses > le corps du texte
P粉7885713162023-08-24 00:43:22
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 :
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粉0769873862023-08-24 00:14:12
Les navigateurs modernes ont Array#includes
qui fait exactement cela et est largement pris en charge par tout le monde sauf IE :
console.log(['joe', 'jane', 'mary'].includes('jane')); // true