Попытка решить проблему If / else с определенной строкой и логическим значением - PullRequest
0 голосов
/ 30 октября 2019

Проблема

Я пробовал несколько путей и смотрел видео. Я застрял ...

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'

Что я пробовал:

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

Еще одна попытка

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

Еще одна попытка

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

Ответы [ 4 ]

0 голосов
/ 30 октября 2019

Вашему оператору else требуется if

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

Кроме того, === проверяет, равны ли строки и являются ли они строками. Часто лучше убедиться, что регистр не учитывается

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

Я часто пишу функцию (прототип) под названием cleanString или compareString, чтобы выполнить всю обычную очистку строк.

Простое решение, но не использует if, как просили.

function exerciseThree(typeOfPizza){
    let lovesPizza= typeOfPizza==="pepperoni";
    return lovesPizza;
  }
0 голосов
/ 30 октября 2019

Я, конечно, надеюсь, что ваш учитель подшучивает над вами. Нет вменяемых предложений, что делать, если вы, например, отправляете «ветчину», а не обрабатываете все возможности, просто небрежно.

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
0 голосов
/ 30 октября 2019

Я бы настоятельно рекомендовал здесь использовать оператор switch. Операторы Switch работают быстрее и, на мой взгляд, с ними легче работать.

Но, чтобы указать, что вы делаете неправильно:

Здесь вы проверяете, имеет ли lovesPizza значение пепперони. Но вы должны проверять typeOfPizza. Вот почему вы, скорее всего, получите undefined:

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

Проверьте, как это выглядит с оператором switch.

function exerciseThree(typeOfPizza) {
     switch (typeOfPizza) {
      case 'pepperoni':
       return true;
      case 'olives':
       return false;
      default:
       return false;
     }
   }
   exerciseThree('pepperoni');
   exerciseThree('olives');
    
0 голосов
/ 30 октября 2019

Как говорится в комментариях, вы ищете if / else . Вам также следует дважды проверить правильность написания вопроса, у вас неправильная проверка / назначение переменных

    function exerciseThree(typeOfPizza){
        let lovesPizza;

        if (typeOfPizza === 'pepperoni') {
            lovesPizza = true;
        } else if (typeOfPizza === 'olives') {
            lovesPizza = false;
        }

        console.log('lovesPizza:', lovesPizza);
    };
    
    exerciseThree('pepperoni');
    exerciseThree('olives');
    
...