js判断对象是否拥有某个key

这篇具有很好参考价值的文章主要介绍了js判断对象是否拥有某个key。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、两种判断方法

方法一 :"key" in obj ,结果为 false,表示不包含;否则表示包含

方法二 :obj.hasOwnProperty("key"),obj 表示对象,结果为 false 表示不包含;否则表示包含

二、两种方法的区别

这两种方法都可以用于检查对象是否包含指定的属性,但它们有一些区别。

  1. “key” in obj:

    • 这种方法使用 in 运算符来检查属性是否存在于对象中。
    • 如果对象 obj 或其原型链中包含名为 “key” 的属性,则返回 true
    • 如果对象 obj 不包含名为 “key” 的属性,并且它的原型链上也不存在该属性,则返回 false
  2. obj.hasOwnProperty(“key”):

    • 这种方法使用 hasOwnProperty 方法来检查对象是否直接拥有指定的属性。
    • 如果对象 obj 直接拥有名为 “key” 的属性,则返回 true
    • 如果对象 obj 不直接拥有名为 “key” 的属性,或者它的原型链上存在该属性,则返回 false

区别如下:

  • "key" in obj 检查的是属性是否存在于对象 obj 或其原型链中,而不仅仅是对象本身。
  • obj.hasOwnProperty("key") 检查的是属性是否直接存在于对象 obj 中,不包括其原型链。

三、举个例子来说明:

var obj = { key: "value" };
console.log("key" in obj);                  // 输出: true
console.log(obj.hasOwnProperty("key"));     // 输出: true

console.log("toString" in obj);             // 输出: true (toString是Object的原型方法)
console.log(obj.hasOwnProperty("toString"));// 输出: false

在这个例子中,obj 对象直接拥有名为 “key” 的属性,因此两种方法都返回 true。同时,由于 toString 方法存在于 Object 的原型中,因此使用 in 运算符检查 "toString" in obj 会返回 true,但 obj.hasOwnProperty("toString") 返回 false,因为该属性不是直接属于 obj 对象的。

因此,选择使用哪种方法取决于你对属性存在性的具体需求,是希望检查对象及其原型链上的属性,还是仅仅检查对象自身的属性。文章来源地址https://www.toymoban.com/news/detail-716486.html

到了这里,关于js判断对象是否拥有某个key的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • js中判断一个对象是否存在

    js中判断一个对象是否存在

    一、Boolean()方法 用Boolean()方法可以将Js中的任意数据类型转为布尔值: 二、用于判断xx是否存在 js一般会自动执行Boolean()方法,我们可以借此判断某个对象在js当前的执行环境中知否存在。如: 又如,可以判断当前环境下某个对象是否存在。 在为一个元素绑定了某个事件后,

    2024年02月13日
    浏览(48)
  • js判断对象数组中的元素是否存在重复

     1、使用  Array.some()  方法和自定义比较函数: 使用  Array.some()  方法遍历数组,对每个元素执行自定义的比较函数。比较函数使用  Array.findIndex()  方法来查找与当前元素相等且索引不同的元素,如果找到则表示存在重复元素。 2、使用  Set  数据结构: 使用  Set  数据结

    2024年02月13日
    浏览(46)
  • js判断一个数组中是否有重复的数组/ 一个数组中对象的某个属性值是否重复

    js判断一个数组中是否有重复的数组/ 一个数组中对象的某个属性值是否重复

    项目中往往会遇到对数组处理是否存在某个形同的值。或者对象中是否存在形同元素… 下列方法常用,但不限于。 一、普通数组数据 1.1对数组进行排序,对比上一个元素和下一个元素是否相等,若相等,则说明数组有重复值。 1.2:先将数组转换成字符串,再遍历数组,在字

    2024年02月09日
    浏览(21)
  • Python 判断字典中 key 是否存在(三种方式)

    方式一: has_key() ,在 python2.2 之前已经被放弃,所以推荐使用其他方式。 方式二: keys() ,需要 in 配合使用,也可以使用 not in 方式三: in 或 not in , 【推荐使用】

    2024年02月13日
    浏览(8)
  • 【100个 Unity实用技能】☀️ | C# 检查字典中是否存在某个Key的几种方法

    【100个 Unity实用技能】☀️ | C# 检查字典中是否存在某个Key的几种方法

    老规矩,先介绍一下 Unity 的科普小知识: Unity 是 实时3D互动内容创作和运营平台 。 包括 游戏开发 、 美术 、 建筑 、 汽车设计 、 影视 在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和

    2023年04月08日
    浏览(14)
  • 微信小程序如何判断对象是否为空、判断值是否存在

    微信小程序如何判断对象是否为空、判断值是否存在

    在 js 文件中需要对 data 里一些的对象进行判断是否为空 比如这里我要在页面加载时判断 data 中的 record 是否为空: 在 onload() 方法中使用 Object.key().length0 来判断: Object.keys()方法:将给定对象的所有可枚举属性变成一个字符串数组 解释:将需要判断的对象转换为一个字符

    2024年02月11日
    浏览(88)
  • PHP开发日志 ━━ 不同方法判断某个数组中是否存在指定的键名,测试哪种方法效率高

    PHP开发日志 ━━ 不同方法判断某个数组中是否存在指定的键名,测试哪种方法效率高

    我们可以用 isset($arr[\\\'a\\\']) 或者 array_key_exists(\\\'a\\\', $arr) 来判断 \\\'a\\\' 键名是否存在与 $arr 数组。 那么这两种方式哪个运行速度快呢? 不多废话了,现在我们写一段代码来测试一下: 结论是 isset() 更胜一筹。

    2024年02月02日
    浏览(48)
  • JS中判断某个字符串、数组等是否包含某个值

    方法一: indexOf()   (推荐)   indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。 方法二:match()   match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 方法三: search()   search() 方法

    2024年02月03日
    浏览(47)
  • 微信小程序判断对象是否存在或为空

    微信小程序判断对象是否存在或为空

    要取节点data.result.image的值,正常情况下有该节点如下图所示  但出错的情况下该节点不存在,直接取会出错 所以添加节点是否存在和是否为空的判断,存在且不为空时才显示  测试发现通过typeof判断节点是否存在时要一层层判断,如果data.result已经不存在,直接判断data.re

    2024年02月04日
    浏览(11)
  • JavaScript判断数组对象是否含有某个值的方法(6种)

    JavaScript判断数组对象是否含有某个值的方法(6种)

    文章内容 文章链接 vue3 antd table表格的增删改查(一) input输入框根据搜索【后台管理系统纯前端filter过滤】 https://blog.csdn.net/XSL_HR/article/details/128072584?spm=1001.2014.3001.5501 vue3 antd table表格的增删改查(二) input输入框根据搜索【后台管理系统 请求后端接口 前后端

    2024年02月06日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包