假设我宣布

var ad = {}; 

如何检查该对象是否包含用户定义的属性?


当前回答

如果你愿意使用lodash,你可以使用some方法。

_.some(obj) // returns true or false

请看这个jsbin的小例子

其他回答

当确定对象是用户定义的对象时,确定UDO是否为空的最简单的方法是以下代码:

isEmpty=
/*b.b Troy III p.a.e*/
function(x,p){for(p in x)return!1;return!0};

尽管这种方法(本质上)是一种演绎方法,-它是最快的,而且可能是最快的。

a={};
isEmpty(a) >> true

a.b=1
isEmpty(a) >> false 

注: 不要在浏览器定义的对象上使用它。

如果你愿意使用lodash,你可以使用some方法。

_.some(obj) // returns true or false

请看这个jsbin的小例子

你可以使用内置的Object。方法获取对象上的键列表并测试其长度。

var x = {};
// some code where value of x changes and than you want to check whether it is null or some object with values

if(Object.keys(x).length){
 // Your code here if x has some properties  
}

如果你使用的是underscore.js,那么你可以使用_。isEmpty功能:

var obj = {};
var emptyObject = _.isEmpty(obj);

很晚的回答,但这就是你处理原型的方法。

Array.prototype.Any = function(func) {
    return this.some(func || function(x) { return x });
}

Object.prototype.IsAny = function() {
    return Object.keys(this).Any();
}