使用空对象作为条件if循环的参数

Abh*_*nha 5 javascript if-statement angularjs

这与我一直试图做的类似,

var obj = {};
if(obj){
//do something
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是当对象为空时条件应该失败.

我尝试使用JSON.stringify(obj),但它仍然有花括号('{}').

Dei*_*kas 5

您可以检查对象是否为空,即它没有属性,使用

Object.keys(obj).length === 0
Run Code Online (Sandbox Code Playgroud)

Object.keys() 在数组中返回对象的所有属性。

如果数组为空 ( .length === 0) 则表示对象为空。


Nin*_*olz 5

您可以使用Object.keys并检查自己键的数组长度.

function go(o) {
    if (Object.keys(o).length) {
        console.log(o.foo);
    }
}

var obj = {};

go(obj);
obj.foo = 'bar';
go(obj);
Run Code Online (Sandbox Code Playgroud)