js如何判斷一個對象{}是否為空對象,沒有任何屬性

js如何判斷一個對象{}是否為空對象,沒有任何屬性

前段時間用js寫瞭一個類似”angularjs”用於數據綁定的東西,功能是比較簡單瞭,

通常應該傳進來的是一個ArrayList JSON對象數組,

但有時候通過AJAX方法調用返回的是一個JSON對象,而不是數組!

為瞭兼容這種情況使用瞭以下代碼:

if (typeof model.rows === "object" && !(model.rows instanceof Array)){
	model.rows = [model.rows];

}

這段代碼在後來使用過程中發現瞭一個Bug,就是當

model.rows = {};

時,依然把它當作一個有效的對象來處理,進行數據綁定,可想而知,所有數據都是空的。

解決方案:

那麼怎麼解決這個問題呢?

第一習慣首先是搜索一下,但得到的結果都是DOM相關的,差強人意!

這時想起之前寫過遍歷JS對象屬性的方法,這裡可以用上瞭!

代碼如下:

if (typeof model.rows === "object" && !(model.rows instanceof Array)){
	var hasProp = false;
	for (var prop in model.rows){
		hasProp = true;
		break;
	}
	if (hasProp){
		model.rows = [model.rows];
	}else{
		throw "model.rows is empty object";
		return false;
	}
}

代碼很簡單,就不寫註釋瞭。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *