Dieser Artikel beschreibt die Methode von JavaScript, um zu vergleichen, ob zwei Objekte gleich sind. Teilen Sie es für Ihre Referenz. Die Details sind wie folgt:
In Python können Sie die integrierte CMP () -Gehörde verwenden, um zu vergleichen, ob die in zwei Objekte enthaltenen Daten gleich sind (Arrays, Sequenzen, Wörterbücher). Es gibt jedoch keine relevante Implementierung in der JavaScript -Sprache. Dieser JS -Code beurteilt, ob die beiden Objekte gleich sind, indem verschiedene Aspekte des JS -Objekts verglichen werden.
cmp = function (x, y) {// Wenn sowohl x als auch y null oder undefiniert sind und genau das gleiche if (x === y) {return true; } // Wenn sie nicht streng gleich sind, müssen beide Objekte sein, wenn (! (X Instanz des Objekts) ||! (Y InstanceOf Objekt)) {return false; } // Sie müssen genau die gleiche Prototypkette haben. Das nächste, was wir tun können, ist // den Konstruktor testen. if (X.Constructor! == Y.Constructor) {return false; } für (var p in x) {// erbte Eigenschaften wurden unter Verwendung von X.Constructor === Y.Constructor if (x.hasownProperty (p)) {// Ermöglicht das Vergleich von x [p] und y [p], wenn auf undefined if (! y.HaSownProperty (p)) {{{return; } // Wenn sie den gleichen strengen Wert oder die gleiche Identität haben, sind sie gleich, wenn (x [p] === y [p]) {Fortsetzung; } // Zahlen, Zeichenfolgen, Funktionen, Booleans müssen streng gleich sein, wenn (typeof (x [p])! == "Objekt") {return false; } // Objekte und Arrays müssen rekursiv getestet werden, wenn (! Object.equals (x [p], y [p])) {return false; }}} für (p in y) {// erlaubt x [p] auf undefined if (y.hasownProperty (p) &&! X.HasownProperty (p)) {return false; }} return true; };verwenden:
obja = {a: '123', b: '456'}; objb = {a: '123', b: '000'}; var isequal = cmp (obja, objb); console.log (isequal); // falsch andersIch hoffe, dieser Artikel wird für JavaScript -Programme aller hilfreich sein.