一、定義空對象
在開始介紹如何判斷一個對象是否為空對象之前,首先需要定義什麼是一個空對象。空對象指的是沒有任何屬性和方法的對象。在JavaScript中,可以用兩種方式定義一個空對象:
let emptyObj1 = {};
let emptyObj2 = Object.create(null);
二、Object.keys()方法判斷對象是否為空
使用Object.keys()方法可以將對象的所有可枚舉屬性轉換為一個數組。如果對象沒有任何可枚舉屬性,則該數組為空。因此,可以使用該方法判斷一個對象是否為空。
const isEmpty = obj => {
return Object.keys(obj).length === 0;
}
let emptyObj = {};
let notEmptyObj = {name: 'Tom', age: 20};
console.log(isEmpty(emptyObj)); // true
console.log(isEmpty(notEmptyObj)); // false
三、for…in語句判斷對象是否為空
使用for…in語句可以遍歷對象的所有可枚舉屬性,如果對象沒有任何可枚舉屬性,則for…in語句不會執行。因此,也可以使用該語句來判斷一個對象是否為空。
const isEmpty = obj => {
for (let prop in obj) {
if (obj.hasOwnProperty(prop)) {
return false;
}
}
return JSON.stringify(obj) === JSON.stringify({});
}
let emptyObj = {};
let notEmptyObj = {name: 'Tom', age: 20};
console.log(isEmpty(emptyObj)); // true
console.log(isEmpty(notEmptyObj)); // false
四、JSON.stringify()方法判斷對象是否為空
JSON.stringify()方法可以將JavaScript對象轉換為JSON格式的字符串。如果對象沒有任何屬性和方法,則轉換後的字符串為'{}’。因此,可以使用該方法判斷一個對象是否為空。
const isEmpty = obj => {
return JSON.stringify(obj) === JSON.stringify({});
}
let emptyObj = {};
let notEmptyObj = {name: 'Tom', age: 20};
console.log(isEmpty(emptyObj)); // true
console.log(isEmpty(notEmptyObj)); // false
五、underscore.js庫判斷對象是否為空
underscore.js是一個JavaScript的實用庫,提供了很多常用函數和工具類。其中一個工具類是_.isEmpty()方法,可以用於判斷一個對象是否為空。
let emptyObj = {};
let notEmptyObj = {name: 'Tom', age: 20};
console.log(_.isEmpty(emptyObj)); // true
console.log(_.isEmpty(notEmptyObj)); // false
原創文章,作者:ZWVXZ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/332279.html