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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android布局属性具体解释[通俗易懂]

    android布局属性具体解释

    2022年1月31日
    43
  • Windows XP密钥–所有版本通用产品密钥集合

    在用秘钥之前,先看下你说安装的镜像是哪个版本的,再找相应的密钥,版本不对应,秘钥可能不管用,我的xp镜像如下:windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070(ED2000.COM).iso找了sp3vol的密钥,激活成功尽管微软已经不再支持WindowsXP更新,但我相信仍然有许多用户因为他们的个人…

    2022年4月15日
    270
  • 那些年你用过最好的键盘吗_我做夫人那些年正版

    那些年你用过最好的键盘吗_我做夫人那些年正版那些年我买键盘踩过的坑分享给大家

    2022年10月16日
    2
  • acwing-个简单的整数问题2(线段树+懒惰标记)「建议收藏」

    acwing-个简单的整数问题2(线段树+懒惰标记)「建议收藏」原题链接给定一个长度为 N 的数列 A,以及 M 条指令,每条指令可能是以下两种之一:C l r d,表示把 A[l],A[l+1],…,A[r] 都加上 d。Q l r,表示询问数列中第 l∼r 个数的和。对于每个询问,输出一个整数表示答案。输入格式第一行两个整数 N,M。第二行 N 个整数 A[i]。接下来 M 行表示 M 条指令,每条指令的格式如题目描述所示。输出格式对于每个询问,输出一个整数表示答案。每个答案占一行。数据范围1≤N,M≤105,|d|≤10000,|A[

    2022年8月8日
    7
  • 80×86汇编语言_站长窝

    80×86汇编语言_站长窝[序言]旧版的”80×86汇编小站站长简单介绍”已经过时了,因此于2013年10月01日花费1个小时又一次更新和排版一次.[人生格言]1]一生都用头脑而不是情绪解决这个问题2]仅仅有偏执狂才会成功3]在最困难时都要保持一份幽默感4]吾生也有涯,而知也无涯,以有涯随无涯,殆已[简历]经常使用网名:猪头三出生日期:1981.XX.X…

    2022年10月13日
    2
  • ASP.NET MVC商城网站

    ASP.NET MVC商城网站本项目使用了大量的插件,所有的商品数据皆为动态加载,全部从数据库中读取呈现在界面上,具备商品评论,添加/移除购物车商品,邮箱发送验证码进行注册等功能。同时本项目配备商品后台管理系统,用来对商品信息和用户信息进行管理,同时还可查看商品的相关数据汇总。本项目仅用于学习参考,作为练习或者是实训项目也是刚刚好。界面展示(部分)代码太多了,就不进行部分展示了。…

    2022年7月22日
    14

发表回复

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

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