檢查對像是否為空的不同方法
檢查對像是否為空是一項非常簡單且常見的任務,但是有很多方法可以檢查對像是否為空。所以在這篇博客中,我試圖涵蓋所有檢查對像是否為空的最佳方法。
那麼讓我們弄清楚如何完成它。
這里首先我們使用對象字面量語法創建一個空對象
const obj = {}
創建空對像後obj
我們將它與另一個空對象進行比較,如下所示:
console.log(obj === {}) // false
我們得到 false
.這怎麼可能???我們像這樣比較兩個空對象:
console.log({} === {}) // false
這是因為我們在比較參考,而不是值。即使值相同,對這些對象的引用也不相同。
那麼我們如何才能真正檢查一個對像是否為空呢?
使用 Object.Keys
Object.keys 將返回一個數組,其中包含對象的屬性名稱。如果數組的長度為0,那麼我們就知道對像是空的。
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
我們也可以使用 Object.values
來檢查 和 Object.entries
這是檢查對像是否為空的最簡單方法。
使用 JSON.stringify
如果我們對對象進行字符串化並且結果只是一個左括號和右括號,我們就知道該對像是空的。
function isEmptyObject(obj){
return JSON.stringify(obj) === '{}';
}
使用 for…in 循環對象屬性
for…in
語句將遍歷對象的可枚舉屬性。
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
在上面的代碼中,我們會循環遍歷對象的屬性,如果一個對象至少有一個屬性,那麼它將進入循環並返回false
.如果對像沒有任何屬性,那麼它將返回 true
.
使用下劃線和 Lodash
我們也可以像這樣通過 underscore.js 進行檢查:
_.isEmpty(obj);
_.isEmpty()
是一個 underscore.js 函數,用於檢查列表、數組、字符串、對像等是否為空。它首先找出傳遞參數的長度,然後再決定。如果傳遞的參數為空,即其中沒有任何元素,則返回 true。否則返回false。
使用 jQuery
我們也可以像這樣通過 jQyery 庫進行檢查:
jQuery.isEmptyObject(obj);
感謝閱讀😄。
如果有什麼我錯過的,或者如果你有更好的方法來做某事,請告訴我。
下一篇
對象介紹第 2 部分:方法