Identifier l'égalité des tableaux en JavaScript peut être une tâche difficile. L'opérateur de comparaison typique, ==, ne suffira pas dans ce scénario. Au lieu de cela, nous plongeons dans le domaine de la comparaison d'objets, qui nécessite une approche plus nuancée.
La méthode simple pour comparer des tableaux consiste à parcourir leurs éléments et à vérifier leur égalité. Voici comment procéder :
Array.prototype.equals = function (array) { if (!array) return false; if (this === array) return true; if (this.length !== array.length) return false; for (let i = 0, l = this.length; i < l; i++) { if (this[i] instanceof Array && array[i] instanceof Array) { if (!this[i].equals(array[i])) return false; } else if (this[i] !== array[i]) return false; } return true; };
Les objets présentent un défi unique lors de la comparaison. Deux instances d'objet, même avec des propriétés identiques, ne seront jamais considérées comme égales en raison de leurs instances de classe distinctes. Cependant, si l'accent est uniquement mis sur la comparaison de données, cela est toujours possible :
Object.prototype.equals = function (object2) { for (const propName in this) { if (this.hasOwnProperty(propName) !== object2.hasOwnProperty(propName)) return false; if (typeof this[propName] !== typeof object2[propName]) return false; } for (const propName in object2) { if (this.hasOwnProperty(propName) !== object2.hasOwnProperty(propName)) return false; if (typeof this[propName] !== typeof object2[propName]) return false; if (!this.hasOwnProperty(propName)) continue; if (this[propName] instanceof Array && object2[propName] instanceof Array) { if (!this[propName].equals(object2[propName])) return false; } else if (this[propName] instanceof Object && object2[propName] instanceof Object) { if (!this[propName].equals(object2[propName])) return false; } else if (this[propName] !== object2[propName]) { return false; } } return true; };
Pour les tableaux imbriqués, les fonctions de Samy Bencherif fournissent une méthode efficace pour rechercher et comparer des objets spécifiques. dans des tableaux multidimensionnels : https://jsfiddle.net/SamyBencherif/8352y6yw/.
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!