繁体   English   中英

javascript(测试对象的属性)

[英]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";
    }

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

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

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

有了这个,我相信你也能理解第二个程序——开关、外壳和中断。 我希望你找到价值。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM