Das Beispiel in diesem Artikel beschreibt die Methode zum Vergleich zweier Objekte auf Gleichheit in JavaScript. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
In Python können Sie die integrierte Funktion cmp() verwenden, um zu vergleichen, ob die in zwei Objekten enthaltenen Daten gleich sind (Arrays, Sequenzen, Wörterbücher). Es gibt jedoch keine relevante Implementierung in der JavaScript-Sprache. Dieser JS-Code vergleicht JS-Objekte in verschiedenen Aspekten, um festzustellen, ob zwei Objekte gleich sind
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; };
Verwendung:
objA={ a:'123', b:'456' }; objB={ a:'123', b:'000' }; var isEqual= cmp(objA, objB); console.log(isEqual); // false 不相同
Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.