js判断对象为空以及有好几种方法了,但是个人觉得不是特别方便。

比如:

1、把对象通过 JSON.stringify 转为字符串,再判断字符串是否等于 " {} "

2、for in循环,判断key是否存在

3、jq的方法

es6已经帮我们很好的解决了此类问题。

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); // 2

const obj2 = {};

console.log(Object.keys(obj2)); // []

// 打印空对象的长度

console.log(Object.keys(obj2).length); // 0

这样我们就可以很简单直观的判断出对象是否为空,并且可以通过这三个方法,拿到想要的数据(键名、键值、键值对)

那么既然得到了返回值数组,我们也可以很简单的判断对象中是否包含某个我们已知的属性名

console.log(keys.indexOf(‘baz‘)); // 1

console.log(keys.indexOf(‘ad‘)); // -1

indexOf可以判断数组是否包含某个值,返回该值所对应的下标,对于不存在的值,返回 -1

这样我们就能判断对象是否包含某个属性名了

当然了,es6还提供了其他几种判断对象是否包含属性名的方法,如下:

1、in:属性名 in 对象(判断属性名是否在对象中存在,返回一个布尔值)

console.log(‘baz‘ in obj); // true

2、hasOwnProperty:对象.hasOwnProperty(属性名)(判断对象中是否含有某个属性名,返回一个布尔值)

console.log(obj.hasOwnProperty(‘baz‘)); // true

好了,以上就是es6中判断对象是否为空,并且判断对象是否包含某个属性的方法

es6 对象中是否有键值_js/es6判断对象是否为空,并判断对象是否包含某个属性...相关推荐

  1. es6 对象中是否有键值_干货| ES6/ES7好玩实用的特性介绍

    本文介绍一些ES6/ES7好玩实用又简单的特性,或许对写代码的效率也有一定帮助噢. ES6/ES7的出现已经有一段时间了,里面的一些新特性你们是否了解呢?本骚年将结合自身的一些使用经历介绍一些简单实用 ...

  2. 爬虫-在请求头中添加cookie键值对 访问登陆后可见的页面

    关于cookie >笔记 >理解 cookie相当于病人手里的病历 cookie的格式 请求头中添加cookie键值对 练习-不使用cookie访问个人中心 访问人人网个人中心 结果是得到 ...

  3. html 表单内容怎么获取不到,jquery中formdate一直获取不到对象中的[0]的值 包括本身也是一个空的数据怎么办?...

    jquery中formdate一直获取不到对象中的[0]的值 包括本身也是一个空的数据怎么办? 再做一个前台的ajax方法 查网上用formdate方法上传.可是进了接口之后一直在控制台获取不到for ...

  4. vue 取数组第一个值_vue遍历对象中的数组取值示例

    前几天小项目,没考虑周全,让后端改接口,改成数组中包含对象中包含数组的形式,后来越琢磨越不对,后台把所有数据放在了一个对象里,我拿弹窗数据不好拿,索性又改了回来,把后端折腾够呛,自己也折腾够呛,发上来 ...

  5. js检测数组对象中是否有重复值

    判断数组对象里的某个值是否都是同一个值 isRepeat=(arr)=> {var hash = {};for(let i=0;i<arr.length;i++){if (!hash[ar ...

  6. python字典怎么添加值_python字典中如何添加键值对

    添加键值对 首先定义一个空字典 1 >>> dic={} 直接对字典中不存在的key进行赋值来添加 1 2 3 >>> dic['name']='zhangsan' ...

  7. python 如何定义空字典_python字典中如何添加键值对

    添加键值对 首先定义一个空字典 1 >>> dic={} 直接对字典中不存在的key进行赋值来添加 1 2 3 >>> dic['name']='zhangsan' ...

  8. cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  9. 两个数组对象合并操作,键值对合并

    两个数组对象合并操作,键值对合并 for (let m = 0; m < meetingSeatList.length; m++) {const elementSeat = meetingSea ...

最新文章

  1. JZOJ 5264. 【NOIP2017模拟8.12A组】化学
  2. Android http 的使用
  3. 小程序渲染html的两种方法
  4. notes from《classification and regression trees》
  5. Win10系统修改MAC地址
  6. python博客下载本地文件_解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了...
  7. 关于AD域账户和组的管理技巧
  8. 大乐透python预测程序_Python生成随机验证码,大乐透号码
  9. java语言程式设计——异常处理语法 3
  10. 2015年4月20 号的日志
  11. C++string的查找和替换
  12. c语言输出最大的数ns流程图_ns图(c语言ns流程图怎么画)
  13. 1221_MISRA_C规范学习_关于函数的规则要求
  14. Azure部署的应用程序访问页面页面时加载字体文件(.woff.woff2)出现 404 错误问题
  15. Web地图服务、WMS 请求方式、网络地图服务(WMS)的三大操作
  16. 如何以最快速度将Vue接入在线客服系统?
  17. Poco C++类库使用说明
  18. 持久性连接和非持久性连接
  19. 根据起始点经纬度、距离、方位角计算目标点经纬度的方法
  20. 杨辉三角(C语言实现)

热门文章

  1. php 声音文件链 处理,PHP 三种方式实现链式操作
  2. python浙江大学城市学院_GitHub - teribsandy/zjcs-tf-code: 浙江大学城市学院的tensorflow项目教学代码(部分)...
  3. c语言学习-编写递归函数用于计算n!
  4. Timeline的Clip编辑模式总结
  5. [Unity脚本运行时更新]C#7新特性
  6. Unity的NewInputSystem的InputManager实现多玩家的总结
  7. OpenShift 4 - 容器应用备份和恢复
  8. pip 20.3 发布:更改默认依赖解析器、即将停止支持 Python 2.7
  9. Ubuntu on WSL 2 GA
  10. Visual Studio提示——DebuggerDisplay