如何在 JavaScript 中檢查物件是否為空

Rupam Yadav 2023年10月12日
  1. 在 JavaScript 中使用 hasOwnProperty() 來檢查一個物件是否為空
  2. 使用 Object.key() 檢查 JavaScript 中物件是否為空
  3. 使用 Underscore.js 庫來檢查物件是否為空
如何在 JavaScript 中檢查物件是否為空

物件在 JavaScript 中扮演著重要的角色,因為它們允許我們結構化、維護和傳輸資料;然而,有些時候我們得到的物件是空的。在這篇文章中,我們將演示幾種方法,告訴你如何在 JavaScript 中檢查物件是否為空。

在 JavaScript 中使用 hasOwnProperty() 來檢查一個物件是否為空

我們可以檢查物件中是否存在指定的屬性。在下面的例子中,我們正在檢查兩個物件是否存在 prop 屬性。isObjEmpty() 函式在物件為空時返回 boolean 命令。

如果指定的屬性存在,該函式返回 False;否則返回 True。注意,這個方法只有在不支援 ECMAScript 5 的情況下才有用,如果有 ECMAScript 5,請參考下面的過程。

const obj1 = {
  one: 1,
  two: 2,
  three: 3
};
const obj2 = {};

console.log('Is Object 1 Empty? : ', isObjEmpty(obj1));
console.log('Is Object 2 Empty? : ', isObjEmpty(obj2));

function isObjEmpty(obj) {
  for (var prop in obj) {
    if (obj.hasOwnProperty(prop)) return false;
  }

  return true;
}

輸出:

Is Object 1 Empty? :  false
Is Object 2 Empty? :  true

使用 Object.key() 檢查 JavaScript 中物件是否為空

在上一個例子中,我們看到了如何在 JavaScript 中檢查物件是否為空;但是,如果我們有 ECMAScript 5 的支援,就會出現不同的結果。

在這個例子中,我們將使用 Object.keys() 命令來檢查物件是否有任何鍵。如果 keys 的長度為零,那麼它就是空的;否則,它就不是空的。

const obj1 = {
  one: 1,
  two: 2,
  three: 3
};
const obj2 = {};

console.log('Is Object 1 Empty? : ', isObjEmpty(obj1));
console.log('Is Object 2 Empty? : ', isObjEmpty(obj2));

function isObjEmpty(obj) {
  return Object.keys(obj).length === 0;
}

輸出:

Is Object 1 Empty? :  false
Is Object 2 Empty? :  true

使用 Underscore.js 庫來檢查物件是否為空

另一個檢查物件中是否沒有資料的簡單方法是使用 Undescore.js 庫;這是一個有幾個有用方法的 JavaScript 庫。其中一個方法是 _.isEmpty(),如果物件為空,則返回 true。

我們可以通過在 <script> 標籤中指定其 URL 來包含該庫。此外,我們可以使用下劃線來訪問它的函式,就像它的名字一樣。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Empty Object Example</title>

    <script src="https://cdn.jsdelivr.net/npm/underscore@1.11.0/underscore-min.js"></script>
  </head>
  <body>
    <script>
      const obj1 = { one: 1, two: 2, three: 3 };
      const obj2 = {};

      console.log("Is Obj1 Empty? : ", _.isEmpty(obj1));
      console.log("Is Obj2 Empty? : ", _.isEmpty(obj2));
    </script>
  </body>
</html>

輸出:

Is Obj1 Empty? :  false
Is Obj2 Empty? :  true
作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相關文章 - JavaScript Object