Maison >interface Web >js tutoriel >Pourquoi `==` ne fonctionne-t-il pas pour comparer des tableaux en JavaScript ?

Pourquoi `==` ne fonctionne-t-il pas pour comparer des tableaux en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-10 16:39:03467parcourir

Why Doesn't `==` Work for Comparing Arrays in JavaScript?

Pourquoi la vérification de l'égalité échoue pour les tableaux

En JavaScript, la vérification de l'égalité (==) entre les tableaux renvoie faux, même lorsque les tableaux semblent contiennent des éléments identiques. Ce comportement contredit l'attente intuitive d'égalité des valeurs.

Comprendre la nature des tableaux

Les tableaux JavaScript ne sont pas des types de données primitifs mais des objets. Lors de la comparaison de deux tableaux à l'aide de ==, l'opérateur vérifie si les deux tableaux sont exactement la même instance, et non si leur contenu est égal.

Comment comparer le contenu d'un tableau

Pour déterminer si deux tableaux ont le même contenu, vous devez comparer explicitement chaque élément correspondant. Voici une fonction simple pour ce faire :

function arraysEqual(arr1, arr2) {
  if (arr1.length != arr2.length) {
    return false;
  }
  for (let i = 0; i < arr1.length; i++) {
    if (arr1[i] != arr2[i]) {
      return false;
    }
  }
  return true;
}

JSON.stringify() Fallacy

Certains suggèrent d'utiliser JSON.stringify() pour convertir les deux tableaux en chaînes JSON puis comparez les chaînes. Bien que cela puisse fonctionner dans certains scénarios, ce n’est pas une solution fiable. JSON.stringify() conserve l'ordre des propriétés des objets dans la chaîne résultante, qui peut varier en fonction des détails d'implémentation. Cette incohérence peut conduire à des faux négatifs lors des vérifications d'égalité.

Bonne pratique

Pour une comparaison fiable du contenu du tableau, il est recommandé d'écrire une fonction personnalisée qui itère sur tous les éléments. et vérifie explicitement l'égalité. Cette approche garantit la précision et la robustesse de la comparaison des tableaux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn