Dalam JavaScript, menentukan kesamaan objek menggunakan pengendali kesamaan yang ketat hanya mendedahkan kesamaan jenis objek. Ini menimbulkan persoalan sama ada wujud mekanisme yang serupa dengan nilai kod cincang Java untuk memastikan kesamaan objek.
Adakah Terdapat Setara Kod Hash dalam JavaScript?
Pertanyaan serupa pada Stack Overflow ("Adakah terdapat apa-apa jenis fungsi hashCode dalam JavaScript?") menyerlahkan keperluan untuk penyelesaian. Senario berikut menunjukkan lagi keperluan:
const obj1 = { name: "John Doe", age: 25 }; const obj2 = { name: "John Doe", age: 25 }; console.log(obj1 === obj2); // false (different memory references)
Penyelesaian Setara
Mujurlah, JavaScript menawarkan penyelesaian dalam bentuk perpustakaan lodash. Ia menyediakan fungsi isEqual(), yang:
const { isEqual } = require('lodash'); const result = isEqual(obj1, obj2); // true (objects are equal)
Lodash brute-force membandingkan setiap pasangan nilai kunci, menggunakan pengoptimuman ECMAScript 5 untuk prestasi. Ambil perhatian bahawa jawapan ini sebelum ini mengesyorkan Underscore.js, tetapi Lodash telah mengatasinya dari segi pembetulan pepijat dan konsistensi.
Atas ialah kandungan terperinci Adakah JavaScript Mempunyai Setara Kod Hash untuk Kesamaan Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!