如何在 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