Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menentukan Secara Berkesan sama ada Objek JavaScript Kosong?

Bagaimanakah Saya Boleh Menentukan Secara Berkesan sama ada Objek JavaScript Kosong?

DDD
Lepaskan: 2024-12-24 14:00:19
asal
498 orang telah melayarinya

How Can I Effectively Determine if a JavaScript Object is Empty?

Menentukan Kekosongan Objek JavaScript

Untuk memastikan sama ada objek JavaScript kosong, pelbagai kaedah dan pertimbangan tersedia. Satu pendekatan melibatkan penggunaan gelung for...in bersama-sama dengan Object.hasOwn (ECMA 2022 ). Gelung ini berulang melalui sifat objek sendiri dan mengembalikan palsu jika wujud:

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

  return true;
}
Salin selepas log masuk

Kaedah lain membezakan objek kosong tussen dan objek lain yang tidak mempunyai sifat sendiri. Ini boleh dicapai melalui semakan jenis:

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

  if (typeof value !== 'object') {
    return false;
  }

  const proto = Object.getPrototypeOf(value);

  if (proto !== null && proto !== Object.prototype) {
    return false;
  }

  return isEmpty(value);
}
Salin selepas log masuk

Adalah penting untuk ambil perhatian bahawa membandingkan dengan Object.prototype mungkin terlepas pandang objek merentas alam. Selain itu, Object.keys(obj).length tidak digalakkan kerana ia tidak cekap, memerlukan penciptaan tatasusunan.

Untuk keserasian dengan enjin JavaScript yang lebih lama, Object.hasOwn boleh digantikan dengan Object.prototype.hasOwnProperty.call :

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

  return true;
}
Salin selepas log masuk

Pelbagai perpustakaan menawarkan fungsi yang direka khusus untuk menyemak objek kosong:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Secara Berkesan sama ada Objek JavaScript Kosong?. 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