简体   繁体   中英

Trying to solve If/else problem with specific string and boolean

Problem

I've tried multiple avenues and watched videos. I'm stuck...

function exerciseThree(typeOfPizza){
  let lovesPizza;
  // In this exercise, you will be given a variable, it will be called: typeOfPizza
  // You are also given another variable called: lovesPizza;
  // Using an if/else statement assign lovesPizza to true if typeOfPizza is 'pepperoni', assign it to false if it is 'olives'

What I've tried:

if (lovesPizza==='pepperoni') {
    // The value is empty.
    return true;
}
else {
    (lovesPizza==='olives')
    return false;
}

Another attempt

 // if(lovesPizza===pepperoni){
  //  return true
  //}
  //else (lovesPizza===olives){
  //  return false
//  }

Another one

  //if (lovesPizza.equals(pepperoni))
    //  return "true";
  //else (lovesPizza.equals(olives))
    //  return "false"

As the comments say, you're looking for if / else . You should also double check your reading of the question, you had your checking / assigning variables the wrong way around

 function exerciseThree(typeOfPizza){ let lovesPizza; if (typeOfPizza === 'pepperoni') { lovesPizza = true; } else if (typeOfPizza === 'olives') { lovesPizza = false; } console.log('lovesPizza:', lovesPizza); }; exerciseThree('pepperoni'); exerciseThree('olives');

I would highly recommend using a switch statement in this case here. Switch statements run faster and are easier to work with in my opinion.

But to point out what you're doing wrong:

Here you are checking if lovesPizza has the value of pepperoni. But you should be checking typeOfPizza. This is why you're most likely getting undefined:

if (lovesPizza==='pepperoni') {
    // The value is empty.
    return true;
}
else {
    (lovesPizza==='olives')
    return false;
}

Check out how this looks with a switch statement.

 function exerciseThree(typeOfPizza) { switch (typeOfPizza) { case 'pepperoni': return true; case 'olives': return false; default: return false; } } exerciseThree('pepperoni'); exerciseThree('olives');

Your else statement needs an if

if(somethingisTrue)
  {
   return "it is true";
  }
else if(somethingelseistrue)
  {
    return "no the other thing was true";
   }
else
  {
    return "nothing is true"
  }

Also === checks the strings equal and are both strings. It is often better to make sure the if is case insensative

if(!typeOfPizza)
    {
       //raise an error as null was passed in
       return "false"
    }
 else if(typeOfPizza.toLowerCase().trim()==="pepperoni"){
    {
      return true..... you can build the rest

I often write a function (prototype) called cleanString or compareString to perform all the normal cleaning up of strings.

A simple solution is but doesn't use ifs as asked.

function exerciseThree(typeOfPizza){
    let lovesPizza= typeOfPizza==="pepperoni";
    return lovesPizza;
  }

I certainly hope you teacher is playing a trick on you. There is no sane suggestions what to do if you send for instance 'ham' into it, and not handle all possibilities are just sloppy.

let lovesPizza;

function exerciseThree(typeOfPizza){
  if(typeOfPizza === 'pepperoni') {
    return true;
  } else if (typeOfPizza === 'olives') {
    return false;
  } else {
    return undefined;
  }
}

lovesPizza = exerciseThree('pepperoni');
console.log(lovesPizza); // true
lovesPizza = exerciseThree('olives');
console.log(lovesPizza); // false
lovesPizza = exerciseThree('ham');
console.log(lovesPizza); // undefined

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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