Rumah  >  Artikel  >  hujung hadapan web  >  [Leetcode] Adakah Objek Kosong

[Leetcode] Adakah Objek Kosong

Linda Hamilton
Linda Hamiltonasal
2024-10-02 22:31:30788semak imbas

[Leetcode] Is Object Empty

Pautan Soalan: https://leetcode.com/problems/is-object-empty/description/

[Penyata Masalah]

Diberi objek atau tatasusunan, kembalikan jika ia kosong.

  • Objek kosong tidak mengandungi pasangan nilai kunci.
  • Susun atur kosong tidak mengandungi unsur.

Anda mungkin menganggap objek atau tatasusunan ialah output JSON.parse.

[Pemahaman Soalan]

  1. Soooo... kami mendapat sama ada Tatasusunan atau Objek sebagai parameter kepada fungsi ini yang dipanggil obj. (Ya, saya tahu, nama yang sangat kreatif, tetapi ia akan masuk akal kemudian!)

  2. Tugas kita? Lakukan beberapa helah pengekodan ajaib untuk mengetahui terlebih dahulu sama ada obj ini ialah tatasusunan atau objek. Kemudian, berdasarkan pengetahuan itu, kami akan memutuskan perkara yang perlu dilakukan seterusnya.

  3. Akhir sekali, kita perlu menyemak sama ada objek/array ini kosong atau tidak. Mudah, kan? (Atau adakah ia...)

[Perkara Utama]

  1. Perkara pertama dahulu: "Suatu tatasusunan secara teknikalnya ialah objek dalam JavaScript." Yap! Betul—tatasusunan ialah jenis objek khas dalam JS. Jadi, jangan keliru!

  2. Pengesanan Objek 101: Kita boleh menyemak sama ada parameter itu sebenarnya objek (atau tatasusunan) dengan menggunakan typeof obj === 'objek' && obj !== null. Mengapa bahagian !== null? Nah, kerana null ialah kes khas dalam JS. Walaupun ia secara teknikal jenis objek, ia seperti kekosongan kosong ketiadaan. Jadi, kami mengecualikan perkara itu, untuk berjaga-jaga (walaupun masalah itu tidak menyebutnya secara eksplisit, ia adalah tabiat yang baik).

  3. Undefined and null Elements: Kedua-dua objek dan tatasusunan boleh mempunyai sifat/elemen yang tidak ditentukan atau null. Tetapi jangan risau—mereka masih akan dikira apabila kami menyemak panjangnya. Mereka tidak mendapat pas percuma daripada pengesahan kami!

  4. Adakah ia Tatasusunan?: Kita boleh menyemak sama ada parameter ialah tatasusunan menggunakan Array.isArray(obj). Tidak perlu menyemak semula sama ada ia objek, walaupun-kami sudah melakukannya lebih awal.

[Kod Penyelesaian]

var isEmpty = function (obj) {
  if (typeof obj === "object" && obj !== null) { // Check if it's an object and not null
    if (Array.isArray(obj)) { // If it's an array
      return obj.length === 0; // Return true if it's empty
    } else { // If it's an object
      return Object.keys(obj).length === 0; // Return true if there are no keys
    }
  }
  return false; // If it's neither an object nor an array, return false
};

[Memecahkannya... lebih jauh lagi]

Langkah 1: Semak sama ada ia objek
Pertama, kami menggunakan typeof obj === 'objek' && obj !== null untuk memastikan input adalah objek dan bukan null. (Kerana kita semua tahu bahawa jenis null === 'objek ialah salah satu ciri aneh JavaScript. Terima kasih, JavaScript!)

Langkah 2: Adakah ia tatasusunan?
Kami menggunakan Array.isArray(obj) untuk membezakan antara tatasusunan dan objek biasa. Tatasusunan mempunyai sifat panjang, jadi kita boleh terus menyemak sama ada obj.length === 0.

Langkah 3: Adakah ia objek?
Jika ia bukan tatasusunan, kami menyemak sama ada ia objek menggunakan Object.keys(obj).length === 0. Kaedah ini mengembalikan bilangan kekunci dalam objek. Tiada kunci? Ia kosong!

Langkah 4: Kes lalai
Jika input bukan objek (atau ia nol), kami mengembalikan palsu kerana soalan menentukan kami bekerja dengan objek atau tatasusunan sahaja.

Atas ialah kandungan terperinci [Leetcode] Adakah Objek Kosong. 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