判断对象是否为空,判断对象是否含有某键值对


今天遇到了,自己做个总结!

判断对象是否为空

来个空对象

let obj = {}
  1. 这个不行,所有的对象都会打成"[object Object]"字符串
obj.toString()
"[object Object]"
  1. 这个是不可能的。。
obj.length
undefined
  1. 循环对象 如果不为空返回true
var b = function() {
for(var key in obj) {
return true;
}
return false;
}
console.log(b());//true
  1. 如果对象转成字符串,"{}" 为对象
JSON.stringify(obj)
"{}"
  1. 将对象转成数组再判断其长度
// Object.keys()ES5 引入了Object.keys方法,返回一个数组,成员是参数对象自身的
//(不含继承的)所有可遍历( enumerable )属性的键名。
Object.keys(obj)
[]
// Object.values方法返回一个数组,成员是参数对象自身的
//(不含继承的)所有可遍历( enumerable )属性的键值。正好与Object.keys相对接
Object.values(obj)
[]
// Object.entries方法返回一个数组,成员是参数对象自身的
//(不含继承的)所有可遍历( enumerable )属性的键值对数组。
Object.entries(obj)
[]
  1. 此方法是使用Object对象的getOwnPropertyNames方法,获取到对象中的属性名,存到一个数组中,返回数组对象,我们可以通过判断数组的length来判断此对象是否为空。
Object.getOwnPropertyNames(obj)
[]
  1. jQuery 方法判断,依赖jquery
var b = $.isEmptyObject(data);
console.log(b) // true

判断对象是否含有某键值对

找到对象了

let obj = {a:1}
  1. hasOwnProperty方法,这个方法就是用来检测对象的某个属性是否存在
obj.hasOwnProperty("a")
true
  1. ES6 属性名 in 对象,返回一个布尔值
"a" in obj
true
  1. 通过转成数组后用数组的方法判断
Object.keys(obj).indexOf("a")
0

等等方法。。。。
后面遇到的 总结

  1. 判断值是否为NaN类型
// 全局方法
isNaN('需要判断的值')
//返回类型为 boolean
  1. typeof 返回的类型是字符串
发布了50 篇原创文章 · 获赞 23 · 访问量 1227

猜你喜欢

转载自blog.csdn.net/qq_44698161/article/details/103299546