Udacity Murder Mystery - JavaScript не сохраняет переменную - PullRequest
0 голосов
/ 15 мая 2018

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

    var room = "ballroom";
    var suspect = "Mr. Kalehoff";
    
    var weapon = "";
    var solved = true;
    
    if (room === "dining room" && suspect === "Mr. Parkes") {
        weapon === "knife";
        solved === true;
    } else if (room === "gallery") {
        weapon === "trophy";
        solved === true;
    } else if (room === "ballroom" && suspect === "Mr. Kalehoff") {
        weapon === "pool stick";
        solved === true;
    } else {
        weapon === "poison";
        solved === false;
    }
    
    if (solved) {
    	console.log(suspect + " did it in the " + room + " with the " + weapon + "!");
    }

В коде javascript выше значение переменной оружия и решено не сохранится и не отразится на консоли, даже если я изменил room и подозреваемый для выполнения условия; заявление не сработает.

Любая помощь в этом отношении будет принята с благодарностью. Надеюсь, все это имеет смысл. Ура!

Ответы [ 3 ]

0 голосов
/ 15 мая 2018

Для операции присвоения (или сохранения) значения переменной вы должны использовать символ Single =.
Для получения дополнительной информации об операции назначения
1.w3schools

2.developer.mozilla

Так что используйте

weapon = "knife";
solved = true;
0 голосов
/ 12 июня 2018

переменные «оружие» и «решено» в остальном, если операторам нужно использовать только 1 '='. как это:

weapon = "knife";
solved = true;

Использование только 1 '=' устанавливает переменную (оружие) с новым значением (нож). Использование 3 '===' задает вопрос, равно ли это значению и типу этого. другими словами, вы спрашивали, соответствует ли «оружие» «ножу», что выдает «ложь». === означает конкретное совпадение ТИПА и ЗНАЧЕНИЯ, а не только значения. тогда как == будет просто сравнивать значение, поэтому «1» == 1 выведет «true», потому что javascript сравнивает только значение, даже если один - строка, а другой - число. но === сравнивает значение И тип, поэтому "1" === 1 выдает «ложь», потому что даже если значения одинаковы, типы разные (один - строка, а другой - число)

См. Урок Udacity / Grow With Google 11.19 - Равенство.

0 голосов
/ 15 мая 2018

Внутри if & else вам нужно присвоить значение, используя одиночный =

var room = "ballroom";
var suspect = "Mr. Kalehoff";

var weapon = "";
var solved = true;

if (room === "dining room" && suspect === "Mr. Parkes") {
  weapon = "knife"; //changed here
  solved = true;    //changed here
} else if (room === "gallery") {
  weapon = "trophy";   //changed here
  solved = true;       //changed here
} else if (room === "ballroom" && suspect === "Mr. Kalehoff") {
  weapon = "pool stick";   //changed here
  solved = true;           //changed here
} else {
  weapon = "poison";       //changed here
  solved = false;          //changed here
}

if (solved) {
  console.log(suspect + " did it in the " + room + " with the " + weapon + "!");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...