js 判斷一個物件是否為空方法總結
阿新 • • 發佈:2018-12-10
通常情況下,工作中寫邏輯的時候都會用到判斷一個物件是否為空的方法,巧的是今天正好有人問我這個問題,我竟然沒回答上來,很尷尬,決定研究一下總結下來,之前研究過但是久了不用就生疏了!大意啊
1.將json物件轉化為json字串,再判斷該字串是否為"{}"
var data = {};
var b = (JSON.stringify(data) == "{}");
alert(b);//true
2.for in 迴圈判斷
var obj = {}; var b = function() { for(var key in obj) { return false; } return true; } alert(b());//true
3.jquery的isEmptyObject方法
此方法是jquery將2方法(for in)進行封裝,使用時需要依賴jquery
var data = {};
var b = $.isEmptyObject(data);
alert(b);//true
4.Object.getOwnPropertyNames()方法
此方法是使用Object物件的getOwnPropertyNames方法,獲取到物件中的屬性名,存到一個數組中,返回陣列物件,我們可以通過判斷陣列的length來判斷此物件是否為空
注意:此方法不相容ie8,其餘瀏覽器沒有測試
var data = {}; var arr = Object.getOwnPropertyNames(data); alert(arr.length == 0);//true
5.使用ES6的Object.keys()方法
與4方法類似,是ES6的新方法, 返回值也是物件中屬性名組成的陣列
var data = {};
var arr = Object.keys(data);
alert(arr.length == 0);//true