L'exemple de cet article décrit la méthode de comparaison de l'égalité de deux objets en JavaScript. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :
En Python, vous pouvez utiliser la fonction intégrée cmp() pour comparer si les données contenues dans deux objets sont égales (tableaux, séquences, dictionnaires). Mais il n’existe aucune implémentation pertinente dans le langage JavaScript. Ce code js compare les objets js sous divers aspects pour déterminer si deux objets sont égaux
cmp = function( x, y ) { // If both x and y are null or undefined and exactly the same if ( x === y ) { return true; } // If they are not strictly equal, they both need to be Objects if ( ! ( x instanceof Object ) || ! ( y instanceof Object ) ) { return false; } //They must have the exact same prototype chain,the closest we can do is //test the constructor. if ( x.constructor !== y.constructor ) { return false; } for ( var p in x ) { //Inherited properties were tested using x.constructor === y.constructor if ( x.hasOwnProperty( p ) ) { // Allows comparing x[ p ] and y[ p ] when set to undefined if ( ! y.hasOwnProperty( p ) ) { return false; } // If they have the same strict value or identity then they are equal if ( x[ p ] === y[ p ] ) { continue; } // Numbers, Strings, Functions, Booleans must be strictly equal if ( typeof( x[ p ] ) !== "object" ) { return false; } // Objects and Arrays must be tested recursively if ( ! Object.equals( x[ p ], y[ p ] ) ) { return false; } } } for ( p in y ) { // allows x[ p ] to be set to undefined if ( y.hasOwnProperty( p ) && ! x.hasOwnProperty( p ) ) { return false; } } return true; };
Utilisation :
objA={ a:'123', b:'456' }; objB={ a:'123', b:'000' }; var isEqual= cmp(objA, objB); console.log(isEqual); // false 不相同
J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.