- 使用JSON.stringify()方法。将对象转换成字符串,然后判断是否等于"{}",如果等于,则对象为空。
-
var obj = {};
var str = JSON.stringify(obj);
var isEmpty = (str === "{}");
console.log(isEmpty); // true
var obj2 = { name: "John", age: 25 };
var str2 = JSON.stringify(obj2);
var isEmpty2 = (str2 === "{}");
console.log(isEmpty2); // false
- 使用Object.keys()方法。获取对象的属性名并存到数组中,如果数组长度为0,则对象为空。
-
var obj = {};
var keys = Object.keys(obj);
var isEmpty = (keys.length === 0);
console.log(isEmpty); // true
var obj2 = { name: "John", age: 25 };
var keys2 = Object.keys(obj2);
var isEmpty2 = (keys2.length === 0);
console.log(isEmpty2); // false
- 使用for..in循环。遍历对象的属性,如果无法遍历到任何属性,则对象为空。
-
var obj = {};
var isEmpty = true;
for (var key in obj) {
isEmpty = false;
break;
}
console.log(isEmpty); // true
var obj2 = { name: "John", age: 25 };
var isEmpty2 = true;
for (var key in obj2) {
isEmpty2 = false;
break;
}
console.log(isEmpty2); // false
- 使用jQuery的isEmptyObject()方法。其原理是利用for in的方式来判断。
var obj = {};
var isEmpty = jQuery.isEmptyObject(obj);
console.log(isEmpty); // true
var obj2 = { name: "John", age: 25 };
var isEmpty2 = jQuery.isEmptyObject(obj2);
console.log(isEmpty2); // false