当前位置: 首页 > article >正文

js判断一个对象里有没有某个属性

1. 使用in操作符

in操作符可以用来检测属性是否存在于对象或其原型链中。

const obj = {a: 1, b: 2};  
  
if ('a' in obj) {  
  console.log('属性a存在于obj中');  
} else {  
  console.log('属性a不存在于obj中');  
}

2. 使用hasOwnProperty()方法

hasOwnProperty()方法用来检测一个对象自身(不包括原型链)是否含有指定的属性。

const obj = {a: 1, b: 2};  
  
if (obj.hasOwnProperty('a')) {  
  console.log('属性a是obj自身的属性');  
} else {  
  console.log('属性a不是obj自身的属性');  
}

3. 使用Object.keys()includes()

虽然这种方法比较繁琐,但它可以用于判断属性是否存在于对象自身(不包括原型链)中。

const obj = {a: 1, b: 2};  
  
if (Object.keys(obj).includes('a')) {  
  console.log('属性a存在于obj中');  
} else {  
  console.log('属性a不存在于obj中');  
}

4. 使用Object.prototype.propertyIsEnumerable()

这个方法会检查对象自身属性中是否存在指定的属性,并且该属性的值是否可被枚举。这个方法不仅判断属性是否存在,还检查该属性是否可枚举。

const obj = {a: 1, b: 2};  
  
if (obj.propertyIsEnumerable('a')) {  
  console.log('属性a存在于obj中,并且是可枚举的');  
} else {  
  console.log('属性a不存在于obj中,或者不是可枚举的');  
}

注意事项

  • 使用in操作符时,它会检查对象自身及其原型链上是否有该属性。
  • hasOwnProperty()只检查对象自身是否有该属性,不检查原型链
  • Object.keys()会返回一个由对象自身所有可枚举属性键组成的数组,然后通过includes()检查数组是否包含该属性键。
  • propertyIsEnumerable()检查对象自身是否包含该属性,并且该属性是否可枚举

选择哪种方法取决于你的具体需求,比如是否需要检查原型链,以及是否需要检查属性是否可枚举。


http://www.kler.cn/a/320902.html

相关文章:

  • Web导出Excel表格
  • 【学习】HTTP
  • 分布式微服务项目,同一个controller不同方法间的转发导致cookie丢失,报错null pointer异常
  • xcode-select: error: tool ‘xcodebuild‘ requires Xcode, but active developer
  • hive alter table add columns 是否使用 cascade 的方案
  • 压缩指令的使用
  • 细说Flink状态管理
  • 深度学习激活函数
  • DC00015基于java web校园网上购物系统
  • Python图形用户界面设计的15个基础组件
  • SpringCloud Alibaba五大组件之——Sentinel
  • html实现黑白棋
  • 代码随想录算法训练营43期 | Day 21 —— 108.将有序数组转换为二叉搜索树、 538.把二叉搜索树转换为累加树
  • 【Linux】通过内核以太层可查看应用程序运行时访问外网情况
  • SQL - 进阶语法(一)
  • 数据结构——C语言单链表的实现
  • python实现石头,剪刀,布(turtle库简易版)
  • python接口自动化——unittest断言
  • leetcode 2024.9.26
  • 观《中国数据库前世今生》有感:从历史中汲取未来的力量
  • 常见排序(C语言版)
  • C# lambda表达式的几个案例
  • keepalived实战演练
  • Sealos 快速创建k8s 集群
  • 代码随想录算法训练营DAY09之动态规划(一)基础题目
  • 稀土功能化合物