【JavaScript/jQuery】js判断对象是否为空对象的几种方法

文章目录

          • 1. 将json对象转化为json字符串,再判断该字符串是否为"{}"
          • 2. for...in 循环判断
          • 3. es6针对对象增加了3个新方法(数组也有):
          • 4. in:属性名 in 对象(判断属性名是否在对象中存在,返回一个布尔值)
          • 5. hasOwnProperty:对象.hasOwnProperty(属性名)(判断对象中是否含有某个属性名,返回一个布尔值)
          • 6. jquery的isEmptyObject方法

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. es6针对对象增加了3个新方法(数组也有):
  1. Object.keys:返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键名
  2. Object.values:返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值
  3. Object.entries:返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值对

由此,我们可以通过其中任意一个方法,得到返回的数组,判断数组长度是否大于0,来判断对象是否为空

const obj = {foo: 'bar',baz: 42
}
console.log(Object.keys(obj)); 
// ["foo", "baz"]console.log(Object.values(obj)); 
// ["bar", 42]console.log(Object.entries(obj)); 
// [["foo", "bar"], ["baz", 42]]// 打印返回值的长度
console.log(Object.keys(obj).length); // 2const obj2 = {};
console.log(Object.keys(obj2)); // [] 
// 打印空对象的长度
console.log(Object.keys(obj2).length); // 0
4. in:属性名 in 对象(判断属性名是否在对象中存在,返回一个布尔值)

注意: 这个也可以用来判断当前对象是否为空,前提你要知道这个对象有值的时候必然存在这个属性名

const obj = {foo: 'bar',baz: 42
}
console.log('baz' in obj); // true
console.log('name' in obj); // false
5. hasOwnProperty:对象.hasOwnProperty(属性名)(判断对象中是否含有某个属性名,返回一个布尔值)

注意: 同上

const obj = {foo: 'bar',baz: 42
}
console.log(obj.hasOwnProperty('foo'))  // true
console.log(obj.hasOwnProperty('name')) // false
6. jquery的isEmptyObject方法

此方法是jquery将2方法(for in)进行封装,使用时需要依赖jquery,如果有使用JQ的库的话可以使用该方法

var data = {};
var b = $.isEmptyObject(data);
alert(b);//true


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部