Nie pokazuje Not Found, pokazuje 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"))
1
Amir 1 kwiecień 2020, 23:20

3 odpowiedzi

Najlepsza odpowiedź

hasOwnProperty jest metodą i przyjmuje parametr. Musisz to tak nazwać hasOwnProperty(checkprob). Zobacz też dokumentację.

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"))
0
Igor 2 kwiecień 2020, 14:46

Używasz hasOwnProperty nieprawidłowo:

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"));
1
Majed Badawi 1 kwiecień 2020, 20:28

Brak wywołania funkcji. Możesz również użyć operatora 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
xdeepakv 1 kwiecień 2020, 20:32