In JavaScript zeigt die Bestimmung der Objektgleichheit mithilfe des strikten Gleichheitsoperators nur die Gleichheit von Objekttypen an. Dies wirft die Frage auf, ob es einen Mechanismus gibt, der dem Hash-Code-Wert von Java ähnelt, um die Objektgleichheit festzustellen.
Gibt es in JavaScript ein HashCode-Äquivalent?
Eine ähnliche Abfrage auf Stack Overflow („Gibt es irgendeine Art von HashCode-Funktion in JavaScript?“) unterstreicht die Notwendigkeit einer Lösung. Das folgende Szenario verdeutlicht die Notwendigkeit weiter:
const obj1 = { name: "John Doe", age: 25 }; const obj2 = { name: "John Doe", age: 25 }; console.log(obj1 === obj2); // false (different memory references)
Äquivalente Lösung
Glücklicherweise bietet JavaScript eine Lösung in Form der lodash-Bibliothek. Es stellt die Funktion isEqual() bereit, die:
const { isEqual } = require('lodash'); const result = isEqual(obj1, obj2); // true (objects are equal)
Lodash Brute-Force vergleicht jedes Schlüssel-Wert-Paar und nutzt ECMAScript 5-Optimierungen für die Leistung. Beachten Sie, dass diese Antwort zuvor Underscore.js empfohlen hat, Lodash es jedoch in Bezug auf Fehlerbehebungen und Konsistenz übertroffen hat.
Das obige ist der detaillierte Inhalt vonVerfügt JavaScript über ein HashCode-Äquivalent für Objektgleichheit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!