js/es6判断对象是否为空,并判断对象是否包含某个属性

js/es6判断对象是否为空,并判断对象是否包含某个属性js判断对象为空以及有好几种方法了,但是个人觉得不是特别方便。比如:1、把对象通过JSON.stringify转为字符串,再判断字符串是否等于”{}”2、forin循环,判断key是否存在3、jq的方法es6已经帮我们很好的解决了此类问题。es6针对对象增加了3个新方法(数组也有):(1)、Object.keys:返回一个数组,成员是参数对象自身的(不含继承…

大家好,又见面了,我是你们的朋友全栈君。

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(Object.keys(obj).indexOf('baz')); // 1

console.log(Object.keys(obj).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中判断对象是否为空,并且判断对象是否包含某个属性的方法

如有问题,请指出,接收批评。

个人微信公众号:

js/es6判断对象是否为空,并判断对象是否包含某个属性

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137471.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • SHFileOperation 文件夹COPY「建议收藏」

    SHFileOperation 文件夹COPY「建议收藏」/********************************************************函数名:CopyFolder函数功能:文件夹复制输入参数:lpszFromPath,lpszFromPath返回值:True说明:源目录必须以’\0\0′(即连续的两个’\0′)结束,不能以’\’结束*******************************

    2022年7月18日
  • JS达到Web指定保存的和打印功能的内容

    JS达到Web指定保存的和打印功能的内容

    2022年1月12日
  • Android程序猿学习路径

    Android程序猿学习路径

    2022年1月14日
  • 一键禁用Win10自动更新,联想官方出品!!

    一键禁用Win10自动更新,联想官方出品!!对于Win10系统的强制更新,真的是是又爱又恨,更新是为了解决电脑系统存在的安全风险以及加入一些新功能,但经常性的开机或者关机都要更新配置,遇到大更新还需要花费很长的等待时间,更加可气的是还会出现更新失败的风险。有时真恨不得将它永久禁止更新。。目前网络上常见的禁止更新方法有两种,1、禁用WindowsUpdata相关服务;2、通过组策略禁止更新。事实证明这两种方法已经摆脱不了win10自…

    2022年6月4日
  • 搭建scrapy框架[通俗易懂]

    搭建scrapy框架[通俗易懂]搭建scrapy

    2022年9月25日
  • iPhone4s完美越狱_苹果4越狱工具

    iPhone4s完美越狱_苹果4越狱工具通常我们所说iPhone激活成功教程实际上包含了很多内容在里面,激活成功教程的目的有很多,例如使用第三方软件,可以打电话,可以使用YouTube等等,其最终目的是可以实现所有的功能。在整个过程中的任何一步都可以叫做是激活成功教程,所以如果有网友单纯问如何激活成功教程这类问题实际上是很难回答的,因为不知道网友关心的是针对哪一部分的激活成功教程。因此本教程中凡是用到激活成功教程这个词的地方,都泛指各种激活成功教程方法,而对于特定的激活成功教程目的则用专门的词来描述…

    2022年9月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号