【问题标题】:Using an empty object as a parameter to a conditional if loop [duplicate]使用空对象作为条件 if 循环的参数 [重复]
【发布时间】:2017-08-03 06:06:17
【问题描述】:

这与我一直在尝试做的类似,

var obj = {};
if(obj){
//do something
}

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

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

【问题讨论】:

  • 试试Object.keys(obj).length

标签: javascript angularjs if-statement


【解决方案1】:

您可以使用

检查对象是否为空,即它没有属性
Object.keys(obj).length === 0

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

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

【讨论】:

    【解决方案2】:

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

    function go(o) {
        if (Object.keys(o).length) {
            console.log(o.foo);
        }
    }
    
    var obj = {};
    
    go(obj);
    obj.foo = 'bar';
    go(obj);

    【讨论】:

    • 感谢您的回答!
    【解决方案3】:

    您可以使用Object.keys(myObj).length查找对象的长度以查找对象是否为空。

    工作示例

        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的详细信息

    【讨论】:

      猜你喜欢
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 2018-09-22
      • 2019-02-05
      • 2013-07-18
      • 1970-01-01
      • 2018-10-02
      相关资源
      最近更新 更多