【问题标题】:javascript (Testing objects for properties)javascript(测试对象的属性)
【发布时间】:2018-07-17 19:01:45
【问题描述】:

正在处理这个问题,只是想知道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");

【问题讨论】:

  • 函数checkObj()的定义是function checkObj(checkProp){},其中checkPropcheckObj()的参数(或输入),所以checkobj("gift")向函数提供"gift",并且这就是checkProp 的来源。希望这会有所帮助。
  • 这是一个非常基本的编程问题。您需要了解函数的工作原理。

标签: javascript javascript-objects


【解决方案1】:

解决方案可以是:

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

【讨论】:

    【解决方案2】:

    checkProp 是一个函数参数。

    checkObj('gift')
    

    在这种情况下:

    checkProp = 'gift'
    

    【讨论】:

      【解决方案3】:

      解决办法如下:

      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 应该被替换为checkProp,因为在checkObj函数中,checkProp是存储了对象参数的参数。

      • 所以在某种程度上,obj 对应于 myobj & checkProp 对应于对象的属性。

      现在,

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

      这是代码的剩余部分,将与其对应部分进行检查,以确保条件是“真”还是“假”。 在这里,myObj 现在将访问由参数 checkProp 保存的属性。 因此,如果条件检查成功,则表示已找到该属性并将返回该属性的值,否则应返回 "Not Found"

      由于我处于初学者阶段,所以如果有任何遗漏或解释错误的地方,请分享您的想法,这对我们所有人都有帮助..!!!

      p>

      【讨论】:

        【解决方案4】:

        这是我解决它的方法。

        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
        }
        

        【讨论】:

          【解决方案5】:

          恐惧和焦虑是您在处理此类简单场景时会引入的基本错误。以下是两种非常有用的方法: 方法一(使用 if else 语句): 函数 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";
              }
          

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

          1. 定义函数后: 函数 checkObj(obj, checkObj) { }
          • obj 和 checkObj 分别代表对象和属性,
          1. 您将继续说明验证函数精确性的条件:使用“if else”选择数组中的对象 (obj),然后扫描周围是否存在所述属性 (checkProp)。

          2. 最后,您将返回该值,如果语句不正确,则以替代值结束循环。

          有了这个,我相信你也能理解第二个过程——switch、case和break。我希望你能找到价值。

          【讨论】:

            【解决方案6】:

            hasOwnProperty(propertyName) 方法用于判断给定对象的属性是否存在,根据是否找到该属性返回真或假。一个对象持有一个键/值对,这样更简单让我们搜索对象属性,而不是使用 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];
              }
            }
            

            【讨论】:

              【解决方案7】:

              checkProp 是您传递给函数 checkObj 的第一个参数的占位符。您可以使用任何名称(例如 abc、def 等)而不是 checkProp。

              【讨论】:

                猜你喜欢
                • 2015-10-10
                • 2023-03-27
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-08-29
                相关资源
                最近更新 更多