Bagaimana untuk menyemak sama ada objek kosong menggunakan JavaScript?

王林
Lepaskan: 2023-09-14 14:17:02
ke hadapan
1441 orang telah melayarinya

如何使用 JavaScript 检查对象是否为空?

Dalam JavaScript, objek ialah jenis data yang paling penting dan kami memerlukannya pada kebanyakan masa semasa membangunkan aplikasi menggunakan rangka kerja JavaScript. Kadangkala, kita perlu menyemak sama ada objek kosong dan melakukan operasi berdasarkan nilai objek.

Sebagai contoh, anda mendapat data daripada pangkalan data jika ia tidak dijumpai, anda boleh mendapatkan objek kosong. Apabila anda melakukan operasi tertentu atau melakukan kaedah tertentu pada objek nol, ia menimbulkan ralat dalam program anda. Jadi lebih baik untuk memeriksa sama ada objek itu kosong terlebih dahulu.

Kami akan mempelajari tiga cara untuk menyemak sama ada objek kosong menggunakan JavaScript.

Gunakan kaedah Object.keys()

Kita boleh menggunakan kaedah Object.keys() untuk mendapatkan kekunci objek dalam tatasusunan tunggal. Selepas itu, kita boleh menyemak panjang tatasusunan menggunakan sifat panjangnya. Jika panjang tatasusunan kunci ialah 0, ini bermakna objek itu tidak mengandungi sebarang kekunci dan objek itu kosong.

tatabahasa

Pengguna boleh menggunakan kaedah Object.keys() mengikut sintaks berikut untuk menyemak sama ada objek itu kosong.

let obj1Len = Object.keys(obj1).length;
if (obj1Len == 0) {
   
   // object is empty
} else {
   
   // object is not empty
} 
Salin selepas log masuk

Dalam sintaks di atas, Object.keys() mengembalikan tatasusunan semua kunci obj1, dan kami menggunakan sifat length untuk mendapatkan panjangnya. Menggunakan sintaks di atas, kita boleh mendapatkan tatasusunan semua kunci menggunakan kaedah Object.keys() dan kita juga boleh menyemak panjang tatasusunan menggunakan sifat panjang

Contoh

Dalam contoh di bawah, kami mencipta dua objek berbeza. obj1 mengandungi beberapa sifat, manakala obj2 kosong dan tidak mengandungi sebarang sifat tunggal.

Selepas itu, kami menggunakan kaedah Object.keys() pada kedua-dua objek untuk mendapatkan tatasusunan kunci dan semak panjang tatasusunan untuk memastikan objek itu kosong atau mengandungi sekurang-kurangnya satu sifat.

<html>
<body>
   <h3>Using the<i> object.keys() </i>method to check whether the object contains some value or not</h3>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      let obj1 = {
         prop1: 10,
         prop2: "Hi",
      };
      let obj2 = {};
      
      // get the array of all keys using the Object.keys() method,
      
      // check the length of the array using the length property
      let obj1Len = Object.keys(obj1).length;
      if (obj1Len != 0) {
         output.innerHTML += "The value of obj1 is " + JSON.stringify(obj1) + "</br>";
      } else {
         output.innerHTML += "The obj1 object is empty! </br>";
      }
      let obj2Len = Object.keys(obj2).length;
      if (obj2Len != 0) {
         output.innerHTML += "The value of obj1 is " + obj2 + "</br>";
      } else {
         output.innerHTML += "The obj2 object is empty! </br>"; 
      }
   </script>
</body>
</html>
Salin selepas log masuk

Gunakan gelung untuk masuk

untuk-dalam Gelung membolehkan kita melelang ke atas kekunci objek. Kita boleh menggunakan for-in untuk melingkari setiap kekunci objek. Di sini kita akan menggunakan gelung for-in dan periksa sama ada ia berulang pada objek sekali, kemudian objek mengandungi sekurang-kurangnya satu sifat dan tidak kosong.

tatabahasa

Pengguna boleh menggunakan sintaks berikut untuk menggunakan untuk-dalam untuk menggelung untuk menyemak sama ada objek itu kosong.

function isObjectEmpty(object) {
   for (ele in object) {
      
      // object is not empty
      return;
   }
   
   // if control comes here, the object is empty
} 
Salin selepas log masuk

Dalam sintaks di atas, jika satu lelaran gelung for berlaku, ini bermakna kami telah memastikan objek tersebut mengandungi sekurang-kurangnya satu atribut. Oleh itu, kami menamatkan fungsi menggunakan kata kunci pulangan selepas lelaran pertama gelung untuk-dalam.

Contoh

Dalam contoh di bawah, kami mencipta dua objek berbeza. Selain itu, kami mencipta fungsi isObjectEmpty() yang mencetak mesej berbeza bergantung pada sama ada objek itu kosong atau tidak.

Kami memanggil fungsi isObjectEmpty() dua kali menggunakan objek berbeza, dan pengguna boleh memerhati outputnya.

<html>
<body>
   <h3>Using the <i>for-in loop</i> to check whether the object contains some value.</h3>
   <p id="output"></p>
   <script>
      let output = document.getElementById("output");
      
      // creating the objects
      let obj1 = {
         prop1: false,
      };
      let obj2 = {};
      
      // creating a function to check object is empty or not
      function isObjectEmpty(object) {
         for (ele in object) {
            
            // if any single iteration occurs using a for-in loop, it means the object contains at least one property
            output.innerHTML += "The object " + JSON.stringify(object) + " is not empty! </br>";
            return;
         }
         output.innerHTML += "The object " + JSON.stringify(object) + " is empty! </br>";
      }
      
      // calling the isObjectEmpty() function by passing different objects as an argument
      isObjectEmpty(obj1);
      isObjectEmpty(obj2);
   </script> 
</body>
</html>
Salin selepas log masuk

Gunakan kaedah JSON.stringify()

JSON.stringify() kaedah menukarkan sebarang nilai kepada rentetan yang kami lalukan sebagai parameter kaedah. Sintaks untuk objek kosong adalah serupa dengan {} dan kaedah stringify() sentiasa mengembalikan "{}" untuk objek kosong.

Oleh itu, kita boleh membandingkan nilai pulangan kaedah stringify() dengan "{}" untuk menentukan sama ada objek itu kosong.

tatabahasa

Pengguna boleh menggunakan kaedah JSON.stringify() mengikut sintaks berikut untuk menyemak sama ada objek itu kosong.

if(JSON.stringify(education) == "{}") {
   
   // object is empty
} else {
   
   // object is not empty
}
Salin selepas log masuk

Dalam sintaks di atas, jika objek pendidikan kosong, kaedah JSON.stringify() akan mengembalikan "{}".

Contoh

Dalam contoh di bawah, kami mencipta objek pendidikan, yang mengandungi beberapa sifat. Oleh itu, kaedah JSON.stringify() tidak akan mengembalikan "{}" tetapi akan mengembalikan nilai rentetan objek pendidikan. Oleh itu, pengguna boleh memerhatikan output yang menunjukkan bahawa objek pendidikan tidak kosong.

<html>
<body> 
   <h3> Using the<i> JSON.stringify() method </i> to check whether object contains some value or not.</h3>
   <p id="output"></p>
   <script>
      let output = document.getElementById("output");
      
      // creating the objects
      let education = {
         totalYears: 12,
         school: "Online",
      };
      
      // convert object to string,
      
      // if object is empty, the JSON.stringify() method will return "{}"
      if (JSON.stringify(education) == "{}") {
         output.innerHTML += "Object is empty!";
      } else {
         output.innerHTML += "Education object is not empty!";
      }
   </script>
</body>
</html>
Salin selepas log masuk

Kami mempelajari tiga cara untuk memeriksa sama ada objek kosong. Kaedah pertama dan ketiga hanya memerlukan satu baris kod; pengguna perlu menulis 3 atau 4 baris untuk menggunakan baris kedua. Jadi adalah lebih baik untuk menggunakan mana-mana kaedah pertama dan ketiga untuk kebolehbacaan kod yang lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada objek kosong menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!