JS 空对象的判断

使用 Object.entries() 方法

一个由给定对象自有的可枚举字符串键属性的键值对组成的数组(即:返回一个包含对象的可枚举属性的数组)。每个键值对都是一个包含两个元素的数组:第一个元素是属性的键(始终是字符串),第二个元素是属性值。

如果返回一个空数组,这意味着该对象没有任何可枚举的属性,反过来意味着它是空的。

const obj = { name: "张三" };

if (Object.entries(obj).length === 0) // 表示空对象

Object.entries(obj).length === 0

示例:

const obj = { foo: "bar", baz: 42 };
console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]

// 类数组对象
const obj = { 0: "a", 1: "b", 2: "c" };
console.log(Object.entries(obj)); // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]

// 具有随机键排序的类数组对象
const anObj = { 100: "a", 2: "b", 7: "c" };
console.log(Object.entries(anObj)); // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]

// getFoo 是一个不可枚举的属性
const myObj = Object.create(
  {},
  {
    getFoo: {
      value() {
        return this.foo;
      },
    },
  },
);
myObj.foo = "bar";
console.log(Object.entries(myObj)); // [ ['foo', 'bar'] ]

更多可参考:Object.entries()

猜你喜欢

转载自blog.csdn.net/AdminGuan/article/details/132586489