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
DDDasal
2024-12-21 16:37:10793semak imbas

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;
}

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);
}

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;
}

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!

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