判断一个对象是否为空对象,本文给出三种判断方法:
1.最常见的思路,
for...in...
遍历属性,为真则为“非空数组”;否则为“空数组”
for (var i in obj) {
return true
return false
2.通过
JSON
自带的
stringify()
方法来判断:
JSON.stringify()
方法用于将
JavaScript
值转换为
JSON
字符串。
if (JSON.stringify(data) === '{}') {
return false
return true
这里需要注意为什么不用
toString()
,因为它返回的不是我们需要的。
var a = {}
a.toString()
3.
ES6
新增的方法
Object.keys()
:
Object.keys()
方法会返回一个由一个给定对象的自身可枚举属性组成的数组。
如果我们的对象为空,他会返回一个空数组,如下:
var a = {}
Object.keys(a)
我们可以依靠Object.keys()这个方法通过判断它的长度来知道它是否为空。
if (Object.keys(object).length === 0) {
return false
return true
作者:言墨儿
链接:
http://www.jianshu.com/p/972d0f277d45
转载补充:
原文中的代码,是写在一个
function
中的。类似这样:
function checkNullObj (obj) {
if (Object.keys(obj).length === 0) {
return false
return true
但这样写,还是太累赘了。可以写成这样:
function checkNullObj (obj) {
return Object.keys(obj).length === 0
假设您有如下对象,您想判断该对象 是否为空:
以下解决方案是最简洁且最高效的方案。一、通过 JSON 自带的 stringify() 方法来判断
二、使用 ES6 的 Object.keys() 方法
三、Object.getOwnPropertyNames() 方法
四、将 json 对象转化为 json 字符串,再判断该字符串是否为 “{}”
五、for in 循环判断...
在写js脚本的时候经常遇到对象为空或者不是对象的情况,出现这种情况我们可以用if去判断它,然后去执行相应的处理方法,具体判断他们的方法有以下几种:
1、if (typeOf(x) == “undefined”)
2、if (typeOf(x) != “object”)
3、if(!x)
其中第三种是最简单的方法,但是第三种就不能用if(x)这种互斥的方法去判断,只能在对象前面加!
java里面!x为true的时候x肯定为false了,但是这里是不可以的
发现了一个巧妙的实现: 需要检查一个对象(Object)是否为空,即不包含任何元素。Javascript 中的对象就是一个字典,其中包含了一系列的键值对(Key Value Pair)。检查一个对象是否为空,等价于检查对象中有没有键值对。写成代码,形如:
if (isEmptyObject(obj)) {
// obj is empty
} else {
// not empty
至于 isEmptyObject 的实现,jQuery 中有一个很有想法的方式,请看代码:
function isEmptyObject(obj) {
for (var key in obj)
例如:当我们在电商项目中,做购物车时,购物车内有商品时是一个页面,但是当我们清空购物车时,页面显示的是另外一个页面,例如:购物是空的页面。此时我们就需要判断商品这个对象是否为空。
var b=new Object();
console.log(JSON.stringify(a)=="{}") //true
console.log(JSON.stringify(b)=="{}") //true
二、for…in循环
使用for in循环可...
可选。用于转换结果的函数或数组。
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。
如果 replacer...
js 判断一个 object 对象是否为空
判断一个对象是否为空对象,本文给出三种判断方法:
1.最常见的思路,for...in...遍历属性,为真则为“非空数组”;否则为“空数组”
for (var i in obj) { // 如果不为空,则会执行到这一步,返回true
return true
return false // 如果为空,返回false
当我们在用jquery的each做循环遍历的时候常常会使用到this,而有时候我们不知道this所指的到底是什么,因为要使用jquery的方法 前提此对象必须是jquery对象。另外要判断一个javascript的对象是什么类型,可以使用typeof, 但是typeof只能判断出js的基础对象(string,boolean,number,object) 判断一个对象是否为jquery对象可以用 obj instanceof jQuery 例如: 代码如下: var obj = $(“div”); if(obj instanceof jQuery){ alert(“这是一个jQuery对象”)
从Map<String,Object>中根据key值取出来的value默认是Object类型
public static boolean isEmpty(Object obj){
//Object类型判空是和null进行对比
if (obj == null){
return true;
// instanceof 判断对象所属的类型
if ((obj instanceof List)){
//判断list是都为空是从 list集
总结一下,Vue中判断对象是否为空有多种方法,其中包括使用Object.keys()方法、JSON.stringify()方法和Object.getOwnPropertyNames()方法等。如果该对象为空对象,则该方法返回一个空对象的JSON字符串"{}"。Object.keys()方法可以返回一个对象自身所有可枚举属性的键名数组,如果该对象为空对象,那么该方法返回一个空数组。Object.getOwnPropertyNames()方法返回一个键名数组,如果该数组的长度为0,说明该对象是一个空对象。