当前位置: 首页 > 知识库问答 >
问题:

如何检查object属性是否存在包含属性名称的变量?

权玉泽
2023-03-14

我正在检查是否存在一个对象属性,该属性带有一个包含所讨论的属性名的变量。

var myObj;
myObj.prop = "exists";
var myProp = "p"+"r"+"o"+"p";

if(myObj.myProp){
    alert("yes, i have that property");
};

这是定义,因为它正在查找MyObj.MyProp,但我希望它检查MyObj.Prop

共有2个答案

闾丘鸣
2023-03-14

您可以使用hasOwnProperty,但在使用此方法时,根据引用需要使用引号:

if (myObj.hasOwnProperty('myProp')) {
    // do something
}

https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/object/hasownproperty

另一种方法是使用in运算符,但这里也需要引号:

if ('myProp' in myObj) {
    // do something
}

https://developer.mozilla.org/en-us/docs/web/javascript/reference/operators/in

邹京
2023-03-14
var myProp = 'prop';
if(myObj.hasOwnProperty(myProp)){
    alert("yes, i have that property");
}

var myProp = 'prop';
if(myProp in myObj){
    alert("yes, i have that property");
}

if('prop' in myObj){
    alert("yes, i have that property");
}

请注意,hasownproperty不检查继承属性,而in检查。例如,MyObj中的'constructor'为true,但MyObj.hasOwnProperty('constructor')不为true。

 类似资料:
  • 问题内容: 我正在检查对象属性是否存在,该变量包含一个持有问题的属性名称。 这是因为它正在寻找但我要它检查 问题答案: 要么 要么 请注意,它不会检查继承的属性,而会。例如,是正确的,但事实并非如此。

  • 问题内容: 如何检查seleniumWeb元素是否包含特定的CSS类。 我有这个html li元素 如您所见,在class属性内部有一个活动类。 我的问题是我有这个元素,我想根据class属性是否具有其他“ active”值进行检查,这是比使用xpath更优雅的解决方案。 我怎样才能做到这一点? 问题答案: 鉴于您已经找到了您的元素,并且您想检查class属性内的某个类: 正如@aurelius正

  • 我试图使用一种方法来检查一个数组列表是否包含一个带有属性的对象。 这是我目前拥有的,但我无法让它发挥作用。

  • 一年前,我问过如何根据另一个属性的值设置模式对象的类型?我有一个很好的答案,从那以后我一直在使用这个模式。 现在,源数据已经更改——在以下情况下,模式会失败: 源数据包含许多属性,但其中只有两个与此问题相关:“键”和“值” - “值”的类型取决于“键”的值 - 所以我的问题是,我如何允许这两个选项中的一个?我已经尝试了我能想到的任何组合,但是悲惨地失败了。Json.Schema.JSchema无法

  • 我有一节课: 值是唯一的,如何通过其值获取属性的名称? 通过反射,例如:

  • 请看do while循环,我认为注释是不言自明的。我想检查该集合是否设置了所有具有符号a、b、c、d的卡片(借助数组或其他任何东西实现它)。