Pautan Soalan: https://leetcode.com/problems/is-object-empty/description/
Diberi objek atau tatasusunan, kembalikan jika ia kosong.
Anda mungkin menganggap objek atau tatasusunan ialah output JSON.parse.
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!)
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.
Akhir sekali, kita perlu menyemak sama ada objek/array ini kosong atau tidak. Mudah, kan? (Atau adakah ia...)
Perkara pertama dahulu: "Suatu tatasusunan secara teknikalnya ialah objek dalam JavaScript." Yap! Betul—tatasusunan ialah jenis objek khas dalam JS. Jadi, jangan keliru!
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).
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!
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.
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 };
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!