JavaScript(测试对象的属性)

ajsxfq5m  于 2022-09-18  发布在  Java
关注(0)|答案(8)|浏览(175)

正在做这件事,只是想知道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");
vyu0f0g1

vyu0f0g11#

解决方案可以是:

function checkObj(checkProp) {
  // Your Code Here
 if(myObj.hasOwnProperty(checkProp)) {
    return myObj[checkProp];
  }
  return "Not Found";
}
ulydmbyx

ulydmbyx2#

CheckProp是函数参数。

checkObj('gift')

在本例中:

checkProp = 'gift'
5t7ly7z5

5t7ly7z53#

以下是解决方案:

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。现在,使用Conditional (ternary) Operator,我们需要检查是否在对象中找到了所需的属性。

O我们在这里使用的方法.hasOwnProperty()

(obj.hasOwnProperty(checkProp))

包含函数的obj参数,该参数将存储我们创建的对象myObj。现在,因为obj已经存储了整个对象,我们现在可以检查该对象是否具有我们在这里使用的.hasOwnProperty(propertyName)方法的特定属性,其中这个propertyName应该被替换为check Prop,因为在checkObj函数中,checkProp是存储了对象参数的参数。

  • 因此,在某种程度上,obj对应于myobj,而checkProp对应于对象的属性。

不,现在,

? myObj[checkProp] : "Not Found"; 
}

这是代码的剩余部分,将对照其对应部分进行检查,以确保条件是“真”还是“假”。这里,myObj现在将访问参数checkProp持有的属性。因此,如果条件检查成功,这意味着找到了该属性,并且它将返回该属性的值,否则,应该返回"Not Found"

由于我是初学者,所以如果有什么遗漏或解释错误的地方,请分享你的想法,这将对我们所有人都有帮助。!

umuewwlo

umuewwlo4#

以下是我是如何解决这个问题的。

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
}
mklgxw1f

mklgxw1f5#

在处理这样的简单场景时,恐惧和焦虑是您将引入的基本错误。下面是两个非常有用的方法:方法1(使用If Else语句):函数check Obj(obj,check Prop){

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";
    }

该表达式是一个模板,它应该检查插入了任何变量的看似属性数组,这不需要初始声明或赋值。定义函数、对其进行限制并应用正确的逻辑或算法是其正确性的关键。

1.定义函数后:函数check Obj(obj,check Obj){}

  • 其中obj和check Obj分别表示对象和属性,

1.您将继续说明验证函数准确性的条件:使用‘if Else’选择数组中的对象(Obj),然后四处查看是否存在所述属性(Check Prop)。
1.最后,您将返回值,如果语句不为真,则使用另一个值结束循环。

有了这一点,我相信你也能理解第二个程序-切换、大小写和中断。我希望你能找到价值。

cedebl8k

cedebl8k6#

HasOwnProperty(PropertyName)方法用于确定给定对象的属性是否存在,并根据是否找到该属性返回TRUE或FALSE。对象包含键/值对,这使我们可以更轻松地搜索对象属性,而不是使用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];
  }
}
20jt8wwn

20jt8wwn7#

// 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");
gzszwxb4

gzszwxb48#

Check Prop是传递给函数check Obj的第一个参数的占位符。您可以使用任何名称(例如abc、def等)来代替check Prop。

相关问题