验证空对象

时间:2018-11-22 18:48:30

标签: javascript

我有一个变量,该变量可旋转一个空对象,因此我需要验证此变量是否具有值。

guardar: function() {
    var value1 = Ext.getCmp('radio1').getValue();

    if (value1 === {}) {
        alert('It is necessary to select an option.');
        return;
    } 
}

当变量到达If语句中的调试行时,尽管变量的值为{},但在评估条件时结果为false。

有人可以帮助我进行验证吗?

4 个答案:

答案 0 :(得分:0)

如果获得了对象,那么是否需要处理该对象以验证是否存在属性 试试这个:

guardar: function() {
    var value1 = Ext.getCmp('radio1').getValue();

    if (typeof value1 === 'object' && Object.keys(value1).length === 0) {
        alert('It is necessary to select an option.');
        return;
    } 
}

答案 1 :(得分:0)

您不能执行value1 === {}的原因是{} === {}为假。原因是javascript通过引用而不是按值比较对象。这意味着它将检查对象是否占用相同的内存位置。

您可以尝试

Object.prototype.isEmpty = function() {
    for(var key in this) {
        if(this.hasOwnProperty(key))
            return false;
    }
    return true;
}

然后您可以测试它是否为空

if (value1.isEmpty()) {
    alert('It is necessary to select an option.');
    return;
} 

答案 2 :(得分:0)

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

    var x = {};

   if(isEmpty(x)){

     alert('It is necessary to select an option.');
     return;

   }else{


   }

答案 3 :(得分:0)

guardar: function() {

var value1 = Ext.getCmp('radio1').getValue();

if (Object.keys(value1).length === 0) {
    alert('It is necessary to select an option.');
    return;
 } 
} // This Will Work as your requirement