JS判断对象为空的方法 ( 6种)
在JavaScript中,判断一个对象是否为空(无任何可枚举属性),可以使用以下几种方法:
- 使用
Object.keys()
方法检查属性的数量。 - 使用
for...in
循环。 - 结合使用
Object.prototype.hasOwnProperty
和Object.keys
。 - 使用
JSON.stringify
判断是否为{}
。 - 使用
!Object.getOwnPropertyNames(obj).length
。 - 使用
!Object.keys(obj).length
。
以下是每种方法的示例代码:
// 方法1: 使用Object.keys()
function isEmpty1(obj) {
return Object.keys(obj).length === 0;
}
// 方法2: 使用for...in
function isEmpty2(obj) {
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
return false;
}
}
return true;
}
// 方法3: 结合使用Object.prototype.hasOwnProperty和Object.keys
function isEmpty3(obj) {
return Object.keys(obj).every(key => !obj.hasOwnProperty(key));
}
// 方法4: 使用JSON.stringify
function isEmpty4(obj) {
return JSON.stringify(obj) === '{}';
}
// 方法5: 使用Object.getOwnPropertyNames
function isEmpty5(obj) {
return !Object.getOwnPropertyNames(obj).length;
}
// 方法6: 使用Object.keys
function isEmpty6(obj) {
return !Object.keys(obj).length;
}
// 测试
const obj1 = {};
const obj2 = { key: 'value' };
console.log(isEmpty1(obj1)); // true
console.log(isEmpty1(obj2)); // false
console.log(isEmpty2(obj1)); // true
console.log(isEmpty2(obj2)); // false
console.log(isEmpty3(obj1)); // true
console.log(isEmpty3(obj2)); // false
console.log(isEmpty4(obj1)); // true
console.log(isEmpty4(obj2)); // false
console.log(isEmpty5(obj1)); // true
console.log(isEmpty5(obj2)); // false
console.log(isEmpty6(obj1)); // true
console.log(isEmpty6(obj2)); // false
以上每种方法都可以检查一个对象是否为空,你可以根据实际需求选择合适的方法。
评论已关闭