JS判斷是否爲空對象{}

判斷1.利用JSON.stringify()node

if(JSON.stringify(accounts) == "{}"){...}
實例:在easyui的tree的
data-options="onClick: function(node){										console.info(node);
	    //該node的attribute是一個對象,若是該對象中不爲空對象,
	    //即裏面有url屬性,那麼取值2;若是爲空對象,則取值1
	    //注意不能直接使用node.attributes=={},由於即便是空對象,裏面會有其餘內置屬性的,好比__proto__
		var url = JSON.stringify(node.attributes)=='{}'?'':'${pageContext.request.contextPat                            h}'+node.attributes.url;
		addTab({title:node.text,href:url});
														}"
/*若是隻是判斷attributes對象中是否具備某個屬性,能夠使用if(node.attributes.url){flag = true}*/

判斷2:利用循環對象屬性json

/* 
 * 檢測對象是不是空對象(不包含任何可讀屬性)。 //如你上面的那個對象就是不含任何可讀屬性
 * 方法只既檢測對象自己的屬性,不檢測從原型繼承的屬性。 
 */
function isOwnEmpty(obj) 
{ 
    for(var name in obj) 
    { 
        if(obj.hasOwnProperty(name)) 
        { 
            return false; 
        } 
    } 
    return true; 
}; 
 
/* 
 * 檢測對象是不是空對象(不包含任何可讀屬性)。 
 * 方法既檢測對象自己的屬性,也檢測從原型繼承的屬性(所以沒有使hasOwnProperty)。 
 */
function isEmpty(obj) 
{ 
    for (var name in obj)  
    { 
        return false; 
    } 
    return true; 
};

順便說下JSON.parse()和JSON.stringify()的區別:ui

parse用於從一個字符串中解析出json對象,如url

var str = '{"name":"huangxiaojian","age":"23"}'
spa

結果:code

JSON.parse(str)
orm

Object對象

  1. age"23"繼承

  2. name"huangxiaojian"字符串

  3. __proto__: Object

注意:單引號寫在{}外,每一個屬性名都必須用雙引號,不然會拋出異常。

stringify()用於從一個對象解析出字符串,如

var a = {a:1,b:2}

結果:

JSON.stringify(a)

"{"a":1,"b":2}"

相關文章
相關標籤/搜索