JS判断是否为空对象{}

判断1.利用JSON.stringify()

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:利用循环对象属性

/* 
 * 检测对象是否是空对象(不包含任何可读属性)。 //如你上面的那个对象就是不含任何可读属性
 * 方法只既检测对象本身的属性,不检测从原型继承的属性。 
 */
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()的区别:

parse用于从一个字符串中解析出json对象,如

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

结果:

JSON.parse(str)

Object

  1. age"23"

  2. name"huangxiaojian"

  3. __proto__: Object

注意:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。

stringify()用于从一个对象解析出字符串,如

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

结果:

JSON.stringify(a)

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



转载于:https://my.oschina.net/u/2331760/blog/418811

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值