es6 对象中是否有键值_js/es6判断对象是否为空,并判断对象是否包含某个属性...
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判断对象是否为空,并判断对象是否包含某个属性...相关推荐
- es6 对象中是否有键值_干货| ES6/ES7好玩实用的特性介绍
本文介绍一些ES6/ES7好玩实用又简单的特性,或许对写代码的效率也有一定帮助噢. ES6/ES7的出现已经有一段时间了,里面的一些新特性你们是否了解呢?本骚年将结合自身的一些使用经历介绍一些简单实用 ...
- 爬虫-在请求头中添加cookie键值对 访问登陆后可见的页面
关于cookie >笔记 >理解 cookie相当于病人手里的病历 cookie的格式 请求头中添加cookie键值对 练习-不使用cookie访问个人中心 访问人人网个人中心 结果是得到 ...
- html 表单内容怎么获取不到,jquery中formdate一直获取不到对象中的[0]的值 包括本身也是一个空的数据怎么办?...
jquery中formdate一直获取不到对象中的[0]的值 包括本身也是一个空的数据怎么办? 再做一个前台的ajax方法 查网上用formdate方法上传.可是进了接口之后一直在控制台获取不到for ...
- vue 取数组第一个值_vue遍历对象中的数组取值示例
前几天小项目,没考虑周全,让后端改接口,改成数组中包含对象中包含数组的形式,后来越琢磨越不对,后台把所有数据放在了一个对象里,我拿弹窗数据不好拿,索性又改了回来,把后端折腾够呛,自己也折腾够呛,发上来 ...
- js检测数组对象中是否有重复值
判断数组对象里的某个值是否都是同一个值 isRepeat=(arr)=> {var hash = {};for(let i=0;i<arr.length;i++){if (!hash[ar ...
- python字典怎么添加值_python字典中如何添加键值对
添加键值对 首先定义一个空字典 1 >>> dic={} 直接对字典中不存在的key进行赋值来添加 1 2 3 >>> dic['name']='zhangsan' ...
- python 如何定义空字典_python字典中如何添加键值对
添加键值对 首先定义一个空字典 1 >>> dic={} 直接对字典中不存在的key进行赋值来添加 1 2 3 >>> dic['name']='zhangsan' ...
- cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...
CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...
- 两个数组对象合并操作,键值对合并
两个数组对象合并操作,键值对合并 for (let m = 0; m < meetingSeatList.length; m++) {const elementSeat = meetingSea ...
最新文章
- JZOJ 5264. 【NOIP2017模拟8.12A组】化学
- Android http 的使用
- 小程序渲染html的两种方法
- notes from《classification and regression trees》
- Win10系统修改MAC地址
- python博客下载本地文件_解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了...
- 关于AD域账户和组的管理技巧
- 大乐透python预测程序_Python生成随机验证码,大乐透号码
- java语言程式设计——异常处理语法 3
- 2015年4月20 号的日志
- C++string的查找和替换
- c语言输出最大的数ns流程图_ns图(c语言ns流程图怎么画)
- 1221_MISRA_C规范学习_关于函数的规则要求
- Azure部署的应用程序访问页面页面时加载字体文件(.woff.woff2)出现 404 错误问题
- Web地图服务、WMS 请求方式、网络地图服务(WMS)的三大操作
- 如何以最快速度将Vue接入在线客服系统?
- Poco C++类库使用说明
- 持久性连接和非持久性连接
- 根据起始点经纬度、距离、方位角计算目标点经纬度的方法
- 杨辉三角(C语言实现)
热门文章
- php 声音文件链 处理,PHP 三种方式实现链式操作
- python浙江大学城市学院_GitHub - teribsandy/zjcs-tf-code: 浙江大学城市学院的tensorflow项目教学代码(部分)...
- c语言学习-编写递归函数用于计算n!
- Timeline的Clip编辑模式总结
- [Unity脚本运行时更新]C#7新特性
- Unity的NewInputSystem的InputManager实现多玩家的总结
- OpenShift 4 - 容器应用备份和恢复
- pip 20.3 发布:更改默认依赖解析器、即将停止支持 Python 2.7
- Ubuntu on WSL 2 GA
- Visual Studio提示——DebuggerDisplay