【问题标题】:Verify if object is null Javascript / Angularjs验证对象是否为空 Javascript / Angularjs
【发布时间】:2016-05-13 17:48:04
【问题描述】:

这是我的代码:

function getMelhorBloco(tamanho){

    var blocoMelhor = {};
    var testeEntrouBloco = true;

            for(var i = 0; i < $scope.blocos.length; i++) {
                if($scope.blocos[i].estado == "Livre") {

                    if(tamanho < $scope.blocos[i].tamanhoTotal) {
                        if(testeEntrouBloco) {
                            blocoMelhor.indice = $scope.blocos[i].idBloco;
                            blocoMelhor.tamanho = $scope.blocos[i].tamanhoTotal;
                            testeEntrouBloco = false;
                        } else {
                            if($scope.blocos[i].tamanhoTotal < blocoMelhor.tamanho) {
                                blocoMelhor.indice = $scope.blocos[i].idBloco;
                                blocoMelhor.tamanho = $scope.blocos[i].tamanhoTotal;

                            }
                        }
                    }
            }
        }

    return blocoMelhor;
}

我试图检查我的对象“blocoMelhor”是否为空。

我试过了

if(blocoMelhor == null){} 
if(blocoMelhor == undefined){} 
if(blocoMelhor ===null){} 

以及方法:

function isEmpty(obj){
    for(var key in obj) {
        if(obj.hasOwnProperty(key)){
            return false;
        }
        return true;
    }
}

我打印了“blocoMelhor”的值,控制台给了我这个:Object { }

有什么建议吗?

【问题讨论】:

  • 为什么你会认为你的对象会是空的?您将其初始化为 {} - 这是一个空对象,但它绝对不是 null 或 undefined。
  • isEmpty(obj) 永远不会返回 false,因为 keys in obj 获取键列表,这意味着对象必须包含每个键

标签: javascript jquery angularjs object


【解决方案1】:

尝试关注

var blocoMelhor;

if(!blocoMelhor){ 
do something for null
} 

由 {} 初始化意味着您创建了一个对象

【讨论】:

    【解决方案2】:

    您是否尝试过使用类似的东西

    if (!blocoMelhor){ //do something } 
    

    ? 我认为这是最好的方法。

    【讨论】:

    • {} 将返回 true;
    【解决方案3】:

    我用对象和作品的属性进行了验证:

    var returnOfGetMelhorBloco = getMelhorBloco(tamanho);
    if(returnOfGetMelhorBloco.indice == undefined){
    //the object is null
    } else {
    //the object is not null
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 2022-01-14
      • 2017-08-06
      相关资源
      最近更新 更多