Using an empty object as a parameter to a conditional if loop
本问题已经有最佳答案,请猛点这里访问。
这和我一直想做的一样,
1 2 3 4 | var obj = {}; if(obj){ //do something } |
我想做的是当对象为空时,条件应该失败。
我试过使用json.stringify(obj),但里面仍然有大括号("")。
您可以使用
1 2 3 4 5 6 7 8 9 10 11 | function go(o) { if (Object.keys(o).length) { console.log(o.foo); } } var obj = {}; go(obj); obj.foo = 'bar'; go(obj); |
您可以使用检查对象是否为空,即它没有属性。
1 | Object.keys(obj).length === 0 |
如果数组为空(
您可以使用
工作实例
1 2 3 4 5 6 7 8 9 10 11 12 | var myObj = {}; if(Object.keys(myObj).length>0){ // will not be called console.log("hello"); } myObj.test = 'test'; if(Object.keys(myObj).length>0){ console.log("will be called"); } |
请参见object.keys的详细信息