如何使用保存属性名称的变量检查对象属性是否存在?

JavaScript

西里小卤蛋

2020-03-11

我正在检查对象属性是否存在,该变量包含一个持有问题的属性名称。

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

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

这是undefined因为它正在寻找myObj.myProp但我要它检查myObj.prop

第769篇《如何使用保存属性名称的变量检查对象属性是否存在?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
小小仲羽 2020.03.11

您可以使用hasOwnProperty()以及in运算符。

西里小卤蛋 2020.03.11

谢谢大家的帮助,并努力摆脱eval声明。变量需要放在方括号中,而不是点号。这可以正常工作,并且是正确的代码。

这些都是变量:appChoice,underI,underObstr。

if(typeof tData.tonicdata[appChoice][underI][underObstr] !== "undefined"){
    //enter code here
}

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android