Rumah > hujung hadapan web > tutorial js > Cara Menyemak sama ada Kunci Wujud dalam Objek JavaScript

Cara Menyemak sama ada Kunci Wujud dalam Objek JavaScript

DDD
Lepaskan: 2024-11-10 05:22:03
asal
282 orang telah melayarinya

How to Check if a Key Exists in a JavaScript Object

Dalam JavaScript, objek ialah salah satu struktur data yang paling kerap digunakan. Objek menyimpan koleksi data dalam bentuk pasangan nilai kunci, dan mengetahui sama ada kunci tertentu wujud dalam objek adalah keperluan biasa. Nasib baik, menyediakan beberapa cara untuk menyemak javascript jika kunci wujud dalam objek, setiap satu sesuai dengan keperluan dan senario yang berbeza.
Dalam artikel ini, kami akan meneroka beberapa kaedah untuk menyemak sama ada kunci wujud dalam objek, menyerlahkan perbezaannya, kes penggunaan dan kemungkinan perangkap.


  1. Menggunakan Operator dalam Pengendali dalam ialah cara yang mudah dan cekap untuk menyemak sama ada harta (atau kunci) wujud dalam objek, termasuk sifat yang mungkin diwarisi melalui rantaian prototaip. Sintaks: javascript Salin kod 'kunci' dalam objek Contoh: javascript Salin kod const person = { nama: 'John', umur: 30 };

jika ('nama' secara peribadi) {
console.log('Kunci "nama" wujud.');
} lain {
console.log('Kunci "nama" tidak wujud.');
}

jika ('alamat' secara peribadi) {
console.log('Kunci "alamat" wujud.');
} lain {
console.log('Kunci "alamat" tidak wujud.');
}
Dalam contoh ini, 'nama' secara peribadi mengembalikan benar kerana nama ialah sifat objek. Walau bagaimanapun, 'alamat' secara peribadi mengembalikan palsu kerana kunci alamat tidak wujud dalam objek.
Kes Penggunaan:
Gunakan operator in apabila anda ingin menyemak sama ada sesuatu sifat wujud dalam objek, tidak kira sama ada ia adalah harta langsung atau diwarisi daripada prototaip.


  1. Menggunakan Kaedah hasOwnProperty(). Semasa pengendali dalam menyemak kedua-dua sifat sendiri dan warisan, kaedah hasOwnProperty() digunakan untuk menyemak sama ada kunci wujud sebagai sifat langsung objek itu sendiri, tidak termasuk sebarang sifat yang diwarisi daripada rantai prototaip. Sintaks: javascript Salin kod object.hasOwnProperty('key') Contoh: javascript Salin kod const person = { nama: 'John', umur: 30 };

jika (orang.hasOwnProperty('name')) {
console.log('Kunci "nama" wujud.');
} lain {
console.log('Kunci "nama" tidak wujud.');
}

jika (person.hasOwnProperty('alamat')) {
console.log('Kunci "alamat" wujud.');
} lain {
console.log('Kunci "alamat" tidak wujud.');
}
Dalam kes ini, hasOwnProperty() akan mengembalikan true untuk nama kerana ia merupakan sifat langsung objek orang dan palsu untuk alamat kerana ia tidak wujud.
Kes Penggunaan:
Gunakan hasOwnProperty() apabila anda perlu menyemak sama ada harta adalah ahli langsung objek dan tidak diwarisi daripada rantai prototaipnya.


  1. Menggunakan Cek yang tidak ditentukan Anda boleh menyemak sama ada kunci wujud dengan mengesahkan sama ada nilainya tidak ditentukan. Walau bagaimanapun, kaedah ini mempunyai had: jika harta ditetapkan kepada tidak ditentukan, ia akan mengembalikan palsu walaupun kunci wujud dalam objek. Oleh itu, kaedah ini tidak boleh dipercayai seperti yang lain, terutamanya jika objek mempunyai sifat yang ditetapkan secara eksplisit kepada tidak ditentukan. Contoh: javascript Salin kod const person = { name: 'John', age: undefined };

jika (orang.nama !== tidak ditentukan) {
console.log('Kunci "nama" wujud.');
} lain {
console.log('Kunci "nama" tidak wujud.');
}

jika (orang.alamat !== tidak ditentukan) {
console.log('Kunci "alamat" wujud.');
} lain {
console.log('Kunci "alamat" tidak wujud.');
}
Dalam contoh ini, kunci nama wujud, tetapi memandangkan nilainya tidak ditakrifkan, semakan akan lulus. Walau bagaimanapun, alamat tidak ditakrifkan dalam objek, jadi semakan akan menunjukkan dengan betul bahawa kunci itu tidak wujud.
Kes Penggunaan:
Kaedah ini berfungsi jika anda pasti objek itu tidak akan mempunyai sifat yang ditetapkan secara eksplisit kepada tidak ditentukan. Ia berguna apabila anda hanya perlu menyemak sama ada nilai ditetapkan atau tidak, tetapi berhati-hati terhadap positif palsu.


  1. Menggunakan Object.hasOwn() (ES2022 ) Diperkenalkan dalam ES2022, Object.hasOwn() menyediakan alternatif yang lebih mantap kepada hasOwnProperty(). Tidak seperti hasOwnProperty(), yang boleh ditimpa, Object.hasOwn() ialah sebahagian daripada pembina Objek dan oleh itu lebih selamat untuk digunakan. Sintaks: javascript Salin kod Object.hasOwn(objek, 'kunci') Contoh: javascript Salin kod const person = { nama: 'John', umur: 30 };

jika (Object.hasOwn(orang, 'nama')) {
console.log('Kunci "nama" wujud.');
} lain {
console.log('Kunci "nama" tidak wujud.');
}

jika (Object.hasOwn(orang, 'alamat')) {
console.log('Kunci "alamat" wujud.');
} lain {
console.log('Kunci "alamat" tidak wujud.');
}
Kaedah ini bersamaan dengan hasOwnProperty() tetapi lebih selamat untuk digunakan dalam persekitaran yang kaedah hasOwnProperty() mungkin ditindih.
Kes Penggunaan:
Gunakan Object.hasOwn() apabila anda mahukan alternatif yang lebih selamat dan moden kepada hasOwnProperty() dan berfungsi dalam persekitaran yang menyokong ES2022 atau lebih tinggi.


Kesimpulan
Apabila menyemak sama ada kunci wujud dalam objek JavaScript, kaedah yang anda pilih akan bergantung pada keperluan khusus anda:
• Gunakan dalam jika anda ingin menyemak kedua-dua harta langsung dan warisan.
• Gunakan hasOwnProperty() jika anda hanya mahu menyemak sifat langsung dan mengecualikan yang diwarisi.
• Gunakan cek tidak ditentukan jika anda memerlukan semakan pantas tetapi berhati-hati terhadap sifat yang ditetapkan secara jelas kepada tidak ditentukan.
• Gunakan Object.hasOwn() untuk alternatif yang lebih selamat dan moden kepada hasOwnProperty() dalam persekitaran ES2022.
Setiap kaedah ini memberikan fleksibiliti dalam mengendalikan senario yang berbeza, memastikan anda boleh menyemak kehadiran kunci dalam objek anda dengan berkesan berdasarkan keperluan aplikasi anda.

Atas ialah kandungan terperinci Cara Menyemak sama ada Kunci Wujud dalam Objek JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan