使用JavaScript/jQuery检查Object是否为空

Art*_*ler 21 javascript jquery json

我有一个像这样的对象:

ricHistory = {
  name1: [{
    test1: value1,
    test2: value2,
    test3: value3
  }],
  name2: [{
    test1: value1,
    test2: value2,
    test3: value3
  }]
};
Run Code Online (Sandbox Code Playgroud)

现在我想用Javascript/jQuery检查例如name2是否为空.我知道这个方法hasOwnProperty.它只适用于data.hasOwnProperty('name2')名称是否存在,但我必须检查它是否为空.

Nul*_*teя 67

你可以做到这一点 jQuery.isEmptyObject()

检查对象是否为空(不包含属性).

jQuery.isEmptyObject( object )
Run Code Online (Sandbox Code Playgroud)

例:

jQuery.isEmptyObject({}) // true
jQuery.isEmptyObject({ foo: "bar" }) // false
Run Code Online (Sandbox Code Playgroud)

来自Jquery


bur*_*kor 9

来自JQuery的另一种语法是你不使用Prototype或类似的,你更喜欢使用$而不是jQuery前缀;

$.isEmptyObject( object )
Run Code Online (Sandbox Code Playgroud)


Min*_*hev 7

试试这个:

if (ricHistory.name2 && 
    ricHistory.name2 instanceof Array &&
    !ricHistory.name2.length) {
   console.log('name2 is empty array');
} else {
   console.log('name2 does not exists or is not an empty array.');
}
Run Code Online (Sandbox Code Playgroud)

上面的解决方案将告诉你richHistory.name2是否存在,是一个数组而且它不是空的.


sta*_*mat 5

试试这个有用的功能:

function isEmpty(obj) {
if(isSet(obj)) {
    if (obj.length && obj.length > 0) { 
        return false;
    }

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

function isSet(val) {
if ((val != undefined) && (val != null)){
    return true;
}
return false;
};
Run Code Online (Sandbox Code Playgroud)