判断一个对象是否为空对象,本文给出三种判断方法:

1.最常见的思路,for...in... 遍历属性,为真则为“非空数组”;否则为“空数组”

for (var i in obj) { // 如果不为空,则会执行到这一步,返回true
return true
}
return false // 如果为空,返回false

2.通过 JSON 自带的 stringify() 方法来判断:

JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。

if (JSON.stringify(data) === '{}') {
return false // 如果为空,返回false
}
return true // 如果不为空,则会执行到这一步,返回true

这里需要注意为什么不用 toString(),因为它返回的不是我们需要的。

var a = {}
a.toString() // "[object Object]"

3.ES6 新增的方法 Object.keys():

Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组。

如果我们的对象为空,他会返回一个空数组,如下:

var a = {}
Object.keys(a) // []

我们可以依靠Object.keys()这个方法通过判断它的长度来知道它是否为空。

if (Object.keys(object).length === 0) {
return false // 如果为空,返回false
}
return true // 如果不为空,则会执行到这一步,返回true

作者:言墨儿 
链接:http://www.jianshu.com/p/972d0f277d45

最新文章

  1. Entity Framework 6 Database-first连接Oracle11g
  2. WordPress菜单函数wp_nav_menu()详细介绍
  3. 欢快的使用Unity JSON吧
  4. 表现层(jsp)、持久层(类似dao)、业务层(逻辑层、service层)、模型(javabean)、控制层(action)
  5. TV测试中的按键长按操作模拟
  6. Discuz论坛搭建过程
  7. 《OD大数据实战》Kafka入门实例
  8. visibility,display区别
  9. CSS分别设置Input样式(按input类型)
  10. HDU 5815 - Golden Week
  11. 【UVA 10307 Killing Aliens in Borg Maze】最小生成树, kruscal, bfs
  12. Cidr计算
  13. 浅谈Java泛型中的extends和super关键字(转)
  14. java笔记之数据类型
  15. C++程序中应增加STL、运算和字符串的头文件
  16. Jsonql——给RESTful API插上一对翅膀
  17. vue实例讲解之vue-router的使用
  18. geth常用指令
  19. django 静态文件的配置
  20. 微信小程序中把页面生成图片

热门文章

  1. Postman使用手册2——管理收藏
  2. 2016级算法第一次练习赛-E.AlvinZH的儿时回忆——蛙声一片
  3. ONTAK2010 Peaks加强版(离线&在线)
  4. [转] Citrix XenDesktop桌面登录VM提示Citrix Web插件错误
  5. 论文阅读 | FoveaBox: Beyond Anchor-based Object Detector
  6. android面试注意点
  7. 换个角度看Salesforce之基础配置学习笔记(二)
  8. 实习没事干之自学redis
  9. selenium 多窗口(windows)及ITargetLocator使用总结
  10. Java基础27-单例设计模式