Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Memeriksa Kewujudan Utama dalam Objek dan Tatasusunan JavaScript dengan Amanah?

Bagaimanakah Saya Boleh Memeriksa Kewujudan Utama dalam Objek dan Tatasusunan JavaScript dengan Amanah?

Linda Hamilton
Linda Hamiltonasal
2024-12-16 09:44:11944semak imbas

How Can I Reliably Check for Key Existence in JavaScript Objects and Arrays?

Menentukan Kewujudan Utama dalam Objek JavaScript

Soalan:

Bagaimanakah saya boleh menyemak dengan pasti sama ada kunci tertentu wujud dalam Objek JavaScript atau tatasusunan?

Kebimbangan:

  • Adakah mengakses kunci yang tidak wujud mengembalikan palsu atau membuang ralat?
  • Adakah menyemak undefined kaedah kewujudan kunci yang tepat pengesahan?

Jawapan:

Menyemak kewujudan kunci menggunakan operator yang tidak ditentukan tidak disyorkan kerana ia mungkin tidak boleh dipercayai. Pertimbangkan senario berikut:

var obj = { key: undefined };
console.log(obj["key"] !== undefined); // false, but the key exists!

Dalam kes ini, kekunci "kunci" wujud dalam objek obj, tetapi nilainya tidak ditentukan. Oleh itu, menyemak sama ada obj["key"] bukan undefined mengembalikan palsu.

Cadangan:

Untuk menyemak kewujudan kunci dengan pasti, gunakan kaedah hasOwnProperty() untuk objek dan operator dalam untuk tatasusunan dan objek:

  • Untuk objek: obj.hasOwnProperty("key") menyemak sama ada kekunci yang ditentukan (sebagai rentetan) wujud sebagai sifat sendiri objek (tidak termasuk sifat yang diwarisi).
  • Untuk tatasusunan dan objek: masukkan obj semak jika yang ditentukan kunci wujud dalam tatasusunan atau objek, termasuk malah sifat bukan milik sendiri (diwarisi daripada objek induk).

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memeriksa Kewujudan Utama dalam Objek dan Tatasusunan JavaScript dengan Amanah?. 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