Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menguji Objek JavaScript Kosong dengan Berkesan?

Bagaimanakah Saya Boleh Menguji Objek JavaScript Kosong dengan Berkesan?

DDD
Lepaskan: 2024-12-21 16:37:10
asal
794 orang telah melayarinya

How Can I Effectively Test for Empty JavaScript Objects?

Menguji untuk Objek JavaScript Kosong

Apabila mengendalikan respons AJAX, adalah perkara biasa untuk menemui objek kosong, seperti var a = {};. Menentukan sama ada objek kosong adalah penting untuk pelbagai tugas aplikasi.

Object.hasOwn() dan untuk...dalam Gelung:

Untuk persekitaran ECMAScript 2022, Kaedah Object.hasOwn() boleh digunakan bersama dengan gelung for...in untuk menyemak kosong objek:

function isEmpty(obj) {
  for (const prop in obj) {
    if (Object.hasOwn(obj, prop)) {
      return false;
    }
  }

  return true;
}
Salin selepas log masuk

Kaedah ini berulang melalui semua sifat objek itu sendiri, dan jika sebarang sifat ditemui, ia menunjukkan objek bukan kosong.

Membezakan Objek Kosong daripada Objek tanpa Sifat Sendiri:

Jika anda perlu membezakan antara objek kosong seperti {} dan objek tanpa sifat sendiri (cth., Tarikh), semakan jenis tambahan boleh dilakukan:

function isEmptyObject(value) {
  if (value == null) {
    return false; // null or undefined
  }

  if (typeof value !== 'object') {
    return false; // boolean, number, string, etc.
  }

  const proto = Object.getPrototypeOf(value);
  if (proto !== null && proto !== Object.prototype) {
    return false; // consider 'Object.create(null)'
  }

  return isEmpty(value);
}
Salin selepas log masuk

Kaedah Alternatif:

Jika anda tidak mempunyai akses kepada ciri ES 2022, anda boleh menggunakan Object.prototype.hasOwnProperty.call() warisan kaedah:

function isEmpty(obj) {
  for (var prop in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, prop)) {
      return false;
    }
  }

  return true;
}
Salin selepas log masuk

Fungsi Perpustakaan Popular:

Banyak perpustakaan popular turut menyediakan fungsi untuk menyemak objek kosong:

  • jQuery: $.isEmptyObject({})
  • lodash: _.isEmpty({})
  • Underscore: _.isEmpty({})
  • Hoek: Hoek.deepEqual({}, {})
  • ExtJS: Ext. Object.isEmpty({})
  • AngularJS (versi 1): angular.equals({}, {})
  • Ramda: R.isEmpty({})

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menguji Objek JavaScript Kosong dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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