Rumah >hujung hadapan web >tutorial js >Adakah JavaScript Mempunyai Setara Kod Hash untuk Kesamaan Objek?

Adakah JavaScript Mempunyai Setara Kod Hash untuk Kesamaan Objek?

Linda Hamilton
Linda Hamiltonasal
2024-12-30 20:08:17288semak imbas

Does JavaScript Have a HashCode Equivalent for Object Equality?

Menentukan Kesamaan Objek dalam JavaScript

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn