En JavaScript, la détermination de l'égalité des objets à l'aide de l'opérateur d'égalité stricte ne révèle que l'égalité des types d'objets. Cela soulève la question de savoir s'il existe un mécanisme similaire à la valeur du code de hachage de Java pour vérifier l'égalité des objets.
Existe-t-il un équivalent HashCode en JavaScript ?
Une requête similaire sur Stack Overflow (« Existe-t-il une sorte de fonction hashCode en JavaScript ? ») souligne la nécessité d'une solution. Le scénario suivant démontre davantage la nécessité :
const obj1 = { name: "John Doe", age: 25 }; const obj2 = { name: "John Doe", age: 25 }; console.log(obj1 === obj2); // false (different memory references)
Solution équivalente
Heureusement, JavaScript propose une solution sous la forme de la bibliothèque lodash. Il fournit la fonction isEqual(), qui :
const { isEqual } = require('lodash'); const result = isEqual(obj1, obj2); // true (objects are equal)
Lodash brute-force compare chaque paire clé-valeur, en utilisant les optimisations ECMAScript 5 pour les performances. Notez que cette réponse recommandait auparavant Underscore.js, mais Lodash l'a surpassé en termes de corrections de bugs et de cohérence.
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!