[英]javascript (Testing objects for properties)
正在研究这个,只是想知道checkProp
是什么意思? checkProp 参数从何而来?
// Setup
var myObj = {
gift: "pony",
pet: "kitten",
bed: "sleigh"
};
function checkObj(checkProp) {
// Your Code Here
var result = myObj.hasOwnProperty(checkProp);
if (result == true) {
return myObj[checkProp];
} else {
return "Not Found";
}
}
// Test your code by modifying these values
checkObj("gift");
这是我在 freecodecamp(测试对象的属性)中的回答:
function checkObj(obj, checkProp) {
if(obj.hasOwnProperty(checkProp)==true){
return obj[checkProp];
}else
return "Not Found";
obj.hasOwnProperty(checkProp);
return "Change Me!";
}
解决方案可以是:
function checkObj(checkProp) {
// Your Code Here
if(myObj.hasOwnProperty(checkProp)) {
return myObj[checkProp];
}
return "Not Found";
}
checkProp 是一个函数参数。
checkObj('gift')
在这种情况下:
checkProp = 'gift'
这是解决方案:
function checkObj(obj, checkProp) {
// Only change code below this line
var myObj = {
gift: "pony",
pet: "kitten",
bed: "sleigh",
city: "Seattle"
};
return (obj.hasOwnProperty(checkProp)) ? myObj[checkProp] : "Not Found";
// Only change code above this line
}
要解释解决方案,请耐心等待并仔细阅读解释。
o 根据问题和提供的解决问题的说明,我们首先需要创建一个对象并定义其属性以及提供的值。
o 现在,理解代码:
function checkObj(obj, checkProp) {
名为checkObj
的函数具有参数obj
(它将从我们创建的对象myObj
中获取其输入)和checkProp
(这将作为对象的属性获取输入)。
o 在函数内部:
var myObj = {
gift: "pony",
pet: "kitten",
bed: "sleigh",
city: "Seattle"
};
在这里,我们定义了对象myObj
(根据需要自行声明)及其属性。
o现在是代码中最有趣的部分(为此我花了几乎一天的时间来弄清楚如何找到解决方案,尽管浏览了各种很酷的网站但都无法满足),我们开始吧:
return (obj.hasOwnProperty(checkProp)) ? myObj[checkProp] : "Not Found";
由于我们已经创建了一个函数,这意味着需要返回一些值才能使用它,为此我们将使用return
。 现在,使用条件(三元)运算符,我们需要检查是否在对象中找到所需的属性。
o 我们在这里使用的方法.hasOwnProperty() :
(obj.hasOwnProperty(checkProp))
包含函数的obj
参数,它将存储我们创建的对象myObj
。 现在,由于这个obj
存储了整个对象,我们现在可以检查这个对象是否具有我们在这里使用的特定属性.hasOwnProperty(propertyName)
这个方法,其中这个propertyName
应该被 checkProp 替换,因为在checkObj
函数, checkProp
是存储了对象参数的参数。
obj
对应于myobj
& checkProp
对应于对象的属性。o 现在,
? myObj[checkProp] : "Not Found";
}
这是代码的其余部分,将与其对应部分进行检查,以确保条件是“真”还是“假”。 在这里, myObj
现在将访问由参数checkProp
保存的属性。 因此,如果条件检查成功,则意味着找到了该属性,它将返回该属性的值,否则,应返回"Not Found"
。
由于我处于初学者阶段,所以如果有任何遗漏或解释错误的地方,请分享您的想法,这对我们所有人都有帮助..!!!
这是我解决它的方法。
function checkObj(obj, checkProp) {
// Only change code below this line
var myObj = {
gift: "pony",
pet: "kitten",
bed: "sleigh",
city: "Seattle",
};
if(obj.hasOwnProperty(checkProp)){
return obj[checkProp];
}else {
return "Not Found";
}
// Only change code above this line
}
在处理这样的简单场景时,您将引入的基本错误是恐惧和焦虑。 下面是两种非常有用的方法: 方法 1(使用 if else 语句): function checkObj(obj, checkProp) {
if (obj.hasOwnProperty(checkProp)) {
return obj[checkProp];
}
else {
return "Not Found";
}
}
//Method 2 (Using switch statement):
switch (obj.hasOwnProperty(checkProp)) {
case true:
return obj[checkProp];
break;
default:
return "Not Found";
}
表达式是一个模板,它应该检查插入任何变量的看似属性数组,不需要初始声明或赋值。 定义函数、调节它并应用正确的逻辑或算法是其正确性的关键。
您将继续说明验证函数精确性的条件:使用“if else”选择数组中的对象 (obj),然后四处扫描是否存在所述属性 (checkProp)。
最后,您将返回值,如果语句不正确,则以替代值结束循环。
有了这个,我相信你也能理解第二个程序——开关、外壳和中断。 我希望你找到价值。
hasOwnProperty(propertyName) 方法用于判断给定 object 的属性是否存在,并根据是否找到该属性返回 true 或 false。搜索 object 属性,而不是使用 switch 或 IF 语句。
下面的代码对我有用:
function checkObj(obj, checkProp) {
const wishList = {
"gift" : "pony",
"pet" : "kitten",
"bed" : "sleigh",
"city" : "Seattle"
}
if(! obj.hasOwnProperty(checkProp)){
return "Not Found"
}else{
return obj[checkProp];
}
}
// Setup
var myObj = {
gift: "pony",
pet: "kitten",
bed: "sleigh"
};
function checkObj(myObj,checkProp) {
// Your Code Here
var result = myObj.hasOwnProperty(checkProp);
if (result == true) {
return myObj[checkProp];
}
else {
return "Not Found";
}
}
// Test your code by modifying these values
checkObj("gift");
function checkObj(obj, checkProp) { if (obj.hasOwnProperty(checkProp)) { return obj[checkProp] } else { return "Not Found" } }
checkProp 是传递给函数 checkObj 的第一个参数的占位符。 您可以使用任何名称(例如 abc、def 等)代替 checkProp。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.