使用JavaScript,可能很难检查对象是否为空。使用Arrays,您可以使用myArray.length轻松检查,但另一方面,对象不能以这种方式工作,检查对象是否为空的最佳方法是使用如下所示的实用程序函数。
function isEmpty(obj) { for(var key in obj) { if(obj.hasOwnProperty(key)) return false; } return true; }
如果您有一个空对象,可以使用上面的函数检查它是否为空。
var myObj = {}; // Empty Object if(isEmpty(myObj)) { // Object is empty (Would return true in this example) } else { // Object is NOT empty }
或者,您可以在Object原型上编写isEmpty函数。
Object.prototype.isEmpty = function() { for(var key in this) { if(this.hasOwnProperty(key)) return false; } return true; }
然后,您可以轻松检查对象是否为空。
var myObj = { myKey: "Some Value" } if(myObj.isEmpty()) { // Object is empty } else { // Object is NOT empty (would return false in this example) }
扩展对象原型并不是最好的事情,因为它可能导致一些浏览器问题和某些框架的其他问题(在某些环境中它也不总是可靠的)。我给出的例子几乎与框架无关。
这是一个很有用的实用函数,特别是如果你每天处理很多对象。