Почему мой код javascript не показывает "Not Found"? - PullRequest
1 голос
/ 01 апреля 2020

не показывает Not Found, показывает undefined

function checkObj(obj, checkprob) {
  if (obj.hasOwnProperty) {
    return obj[checkprob];
  } else {
    return "Not Found"
  }
}

console.log(checkObj({
  gift: "pony",
  pet: "kitten",
  bed: "sleigh"
}, "Amir"))

Ответы [ 3 ]

1 голос
/ 01 апреля 2020

Вы используете hasOwnProperty неправильно:

function checkObj(obj, checkprob){
     if(obj.hasOwnProperty(checkprob)){
          return obj[checkprob];
     } else{
          return "Not Found";
     } 
}
console.log(checkObj({gift: "pony", pet: "kitten", bed: "sleigh"}, "Amir"));
console.log(checkObj({gift: "pony", pet: "kitten", bed: "sleigh"}, "bed"));
0 голосов
/ 01 апреля 2020

Отсутствует вызов функции. Вы также можете использовать оператор in.

function checkObj(obj, checkprob){
     if(obj.hasOwnProperty(checkprob)){
          return obj[checkprob];
     } else{
          return "Not Found";
     } 
}


    function checkObj2(obj, checkprob) {
      if (checkprob in obj) {
        return obj[checkprob];
      } else {
        return "Not Found";
      }
    }

    console.log(
      checkObj2(
        {
          gift: "pony",
          pet: "kitten",
          bed: "sleigh"
        },
        "Amir"
      )
    );
0 голосов
/ 01 апреля 2020

hasOwnProperty - это метод, который принимает параметр. Вы должны назвать это так hasOwnProperty(checkprob). См. Также документацию .

function checkObj(obj, checkprob) {
  if (obj.hasOwnProperty(checkprob)) {
    return obj[checkprob];
  } else {
    return "Not Found"
  }
}

console.log(checkObj({
  gift: "pony",
  pet: "kitten",
  bed: "sleigh"
}, "Amir"))
...