Javascript trivia:检查空对象的相等性

fly*_*ire 11 html javascript jquery

可能是这个问题的重复.

愚蠢的javascript问题:我想检查对象是否是emtpy对象.

我将空对象称为使用空对象文字产生的对象,如下所示:

 var o = {};
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,既不是=====不起作用,如以下两个陈述

 alert({}=={});
 alert({}==={});
Run Code Online (Sandbox Code Playgroud)

假的.

评估空对象的表达式示例:

  • 0
  • ""
  • {a:"b"}
  • []
  • new function(){}

那么评估空物体的最短方法是什么?

Li0*_*liQ 18

function isEmpty(o){
    for(var i in o){
        if(o.hasOwnProperty(i)){
            return false;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)


Jan*_*čič 14

您还可以使用Object.keys()来测试对象是否为"空":

if (Object.keys(obj).length === 0) {
  // "empty" object
} else {
  // not empty
}
Run Code Online (Sandbox Code Playgroud)