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判断对象是否为空,并判断对象是否包含某个属性

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Apache配置虚拟主机

    Apache配置虚拟主机

  • Linux 文件系统与日志分析「建议收藏」

    Linux 文件系统与日志分析「建议收藏」文章目录1.前言2.深入理解Linux文件系统2.1inode与block详解(1)inode和block概述1.前言2.深入理解Linux文件系统2.1inode与block详解(1)inode和block概述  文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。一般连续八个扇区组成一个“块”(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区

  • 计算机网络复习题(全套)

    计算机网络复习题(全套)1、网络协议主要要素为_________。【答案】语法、语义、同步。2、一座大楼内的一个计算机网络系统,属于________。【答案】LAN。3、随着电信和信息技术的发展,国际上出现了所谓“三网融合”的趋势,下列属于三网之一的是(ABC)A.传统电信网 B.计算机网C.有线电视网   D.卫星通信网4、通信系统必须具备的三个基本要素是(C)A、终端、电缆、计算机…

    2022年10月31日
  • 操作系统维护相关总结「建议收藏」

    操作系统维护相关总结「建议收藏」操作系统维护相关总结声明:引用请注明出处http://blog.csdn.net/lg1259156776/说明:由于前段时间遭受了电脑固态硬盘故障系统崩溃,数据未及时备份无法读取而导致的痛苦,这里

  • 分页插件

    分页插件分页插件介绍分页可以将很多条结果进行分页显示。如果当前在第一页,则没有上一页。如果当前在最后一页,则没有下一页。需要明确当前是第几页,这一页中显示多少条结果。MyBatis分页插件总结在企业

  • ipad2 ios9.3.5越狱_ipad3怎么越狱

    ipad2 ios9.3.5越狱_ipad3怎么越狱[ipad]3.2.2IPAD越狱教程!最新绿雨一、准备工作.sC&w)S&X1O5V引用;v/g2e;[8F%_;J2l4u-zC:`9F.}!L3b’q*}4a1E”}8H2h1:满电IPAD6P$]-b0Q1]/e2:双口USB供电转接线(有些电脑…

发表回复

您的电子邮箱地址不会被公开。

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