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!