Rumah  >  Artikel  >  hujung hadapan web  >  Cara Membandingkan Tatasusunan Objek dengan Elegan dalam JavaScript

Cara Membandingkan Tatasusunan Objek dengan Elegan dalam JavaScript

DDD
DDDasal
2024-10-20 18:07:31819semak imbas

How to Elegantly Compare Arrays of Objects in JavaScript

Membandingkan Tatasusunan Objek dalam JavaScript: Pendekatan Lebih Elegan

Walaupun kaedah kekerasan boleh berkesan dalam membandingkan tatasusunan objek, selalunya ada adalah penyelesaian yang lebih elegan. Dalam JavaScript, membandingkan tatasusunan objek memerlukan pertimbangan yang teliti kerana sifat dinamik sifat objek.

Walau bagaimanapun, terdapat teknik ringkas untuk menangani masalah ini:

<code class="js">const objectsEqual = (o1, o2) =>
    Object.keys(o1).length === Object.keys(o2).length 
        && Object.keys(o1).every(p => o1[p] === o2[p]);</code>

Fungsi ini, objectsEqual , membandingkan dua objek dengan terlebih dahulu menyemak bilangan sifat yang mereka miliki. Jika ia berbeza, objek tidak boleh dianggap sama.

Seterusnya, ia memeriksa setiap sifat objek pertama (p) dan mengesahkan bahawa nilainya sepadan dengan nilai sifat yang sepadan dalam objek kedua. Jika mana-mana nilai sifat berbeza, objek adalah tidak sama.

Contohnya:

<code class="js">const obj1 = { name: 'John', age: 33};
const obj2 = { age: 33, name: 'John' };
const obj3 = { name: 'John', age: 45 };
        
console.log(objectsEqual(obj1, obj2)); // true
console.log(objectsEqual(obj1, obj3)); // false</code>

Penyelesaian ini membandingkan tatasusunan objek dengan cekap, dengan mengambil kira bilangan pembolehubah sifat dan memastikan nilai yang tepat padan.

Atas ialah kandungan terperinci Cara Membandingkan Tatasusunan Objek dengan Elegan dalam JavaScript. 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