首頁 >web前端 >js教程 >如何有效判斷JavaScript物件是否為空?

如何有效判斷JavaScript物件是否為空?

DDD
DDD原創
2024-12-24 14:00:19505瀏覽

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

確定 JavaScript 物件是否為空

要確定 JavaScript 物件是否為空,可以使用多種方法和注意事項。一種方法涉及結合使用 for...in 迴圈和 Object.hasOwn (ECMA 2022 )。此循環迭代物件本身的屬性,如果存在則傳回 false:

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

  return true;
}

另一種方法區分 tussen 空物件和其他缺少自己屬性的物件。這可以透過類型檢查來實現:

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

值得注意的是,與 Object.prototype 進行比較可能會忽略跨領域物件。此外,不鼓勵使用 Object.keys(obj).length,因為它效率低下,需要建立陣列。

為了與舊版JavaScript 引擎相容,可以將Object.hasOwn 替換為Object.prototype.hasOwnProperty.call :

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

  return true;
}

各種函式庫提供專門設計用於檢查空的函數物件:

  • jQuery: jQuery.isEmptyObject({}) // true
  • Lodash: _.isEmpty({}) // true
  • 底線: _ .isEmpty({}) // true
  • 霍克: Hoek.deepEqual( {}, {}) // true
  • ExtJS: Ext.Object.isEmpty({}) // true
  • AngularJS (版本1): angular.equals({ }, {}) // true
  • Ramda: R.isEmpty({ }) //是的

以上是如何有效判斷JavaScript物件是否為空?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn