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)
上一篇 2022年6月1日 下午10:36
下一篇 2022年6月1日 下午10:36


相关推荐

  • 开源代码网站

    开源代码网站!!!github!!!codepen!!!码云(1)到sourceforge上查找相关代码;(2)到google code上面查找具体的代码;(3)到apache网站上寻找java的相关代码;(4)直接到开源项目网站上面寻找代码;(5)到csdn等网站下载代码,偶尔会有意外的收获;(6)到图书出版社下载图书附录的代码;

    2022年7月15日
    15
  • 实战指南:使用 Pulumi 与 Tailscale 在 AWS/Hetzner 零信任部署 OpenClaw

    实战指南:使用 Pulumi 与 Tailscale 在 AWS/Hetzner 零信任部署 OpenClaw

    2026年3月13日
    2
  • 基于web的酒店管理系统_新锐酒店管理系统

    基于web的酒店管理系统_新锐酒店管理系统小型酒店管理系统一、前言小型酒店管理系统采用Vue前端框架、SpringBoot框架实现项目前后端分离,并通过Mysql存储数据。本系统实现针对不同用户的登录验证;客户信息、前台管理员以及超级管理员等信息存取;客户信息登记、预约、入住、消费等功能;前台管理员对客户操作的管理;超级管理员对客户以及前台管理员操作进行控制等的功能,系统功能基本实现,测试良好。二、系统可行性分析(一)系统开发工具及平台操作系统:Windows10编程语言:Vue、SpringBoot开发工具:WebStorm、I

    2026年3月8日
    5
  • Pycharm如何创建Django项目「建议收藏」

    Pycharm如何创建Django项目「建议收藏」打开pycharm,点击File——>NewProiect 点击Django 设置Django项目路径及相关配置(因为有很多文件我们用不上所以不选Projectlnterpreter选项,而选择Existinginterpreter,创建一个相对干净的的Django项目工程) 点击创建之后,pycharm会自动帮我们创建一个Django项目 启动Django项目 点击链接进入浏览器 出现这个画面就表示创建成功了…

    2022年8月27日
    7
  • 京东云服务器免费6月_福利服务器

    京东云服务器免费6月_福利服务器记得是在2010年,那个时候我刚刚开始接触Android不久,Google也还没有离开中国。当时我在上大三,Google举办了一场Android应用开发中国大学生挑战赛,跃跃欲试的我就和同学组队一起参加了。当时我们开发的项目叫做酷欧短信(没错,你们所熟悉的酷欧天气其实就是从这个名字演变过来的),是一款功能比较丰富的短信收发软件。我个人对这个项目当时是非常有信心的,不过最终结果下来却只获得了

    2022年10月14日
    7
  • 什么是Mock测试?

    什么是Mock测试?mock测试:就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。mock对象:这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。mock对象使用范畴:真实对象具有不可确定的行为,产生不可预测的效果,(如:股票行情,天气预报)真实对象很难被创建的真实对象的某些行为很难被触发真实对象实际上…

    2022年6月20日
    43

发表回复

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

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