Dalam JavaScript, adalah penting untuk membandingkan tatasusunan yang mengandungi objek dengan cekap, terutamanya apabila objek ini mengandungi berbilang sifat dan mungkin mempunyai nilai yang hilang. Pendekatan naif boleh melibatkan lelaran pada setiap tatasusunan, membandingkan sifat individu. Walau bagaimanapun, untuk kes di mana tatasusunan dihadkan kepada saiz tertentu (cth., sehingga 8 item) dan kiraan sifat, penyelesaian yang lebih elegan wujud.
Satu pendekatan ialah memanfaatkan teknik penyirian objek. Walau bagaimanapun, perlu diingatkan bahawa siri sahaja tidak mencukupi kerana susunan sifat objek mempengaruhi keputusan. Oleh itu, kaedah yang lebih mantap diperlukan.
Pertimbangkan fungsi berikut:
<code class="javascript">const objectsEqual = (o1, o2) => Object.keys(o1).length === Object.keys(o2).length && Object.keys(o1).every(p => o1[p] === o2[p]);</code>
Fungsi ini menyemak bilangan sifat dalam kedua-dua objek (Object.keys(o1).length) dan membandingkan setiap kunci sifat (p) untuk memastikan nilai sepadannya (o1[p]) adalah sama.
Sebagai contoh, memandangkan objek berikut:
<code class="javascript">const obj1 = { name: 'John', age: 33}; const obj2 = { age: 33, name: 'John' }; const obj3 = { name: 'John', age: 45 };</code>
Fungsi memanggil objectsEqual( obj1, obj2) akan mengembalikan benar kerana kedua-dua objek mempunyai sifat yang sama dengan nilai yang setara, manakala objectsEqual(obj1, obj3) akan mengembalikan palsu kerana nilai umur yang berbeza.
Pendekatan ini menawarkan cara yang ringkas dan cekap untuk bandingkan objek dalam tatasusunan, mengambil kira nilai harta benda dan susunan harta benda yang hilang.
Atas ialah kandungan terperinci Cara Membandingkan Objek dengan Cekap dalam Tatasusunan dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!