【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个新方法(数组也有):
Object.keys:返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键名Object.values:返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
