Как определить, что некоторые, но не все переменные равны `null` - PullRequest
1 голос
/ 11 июля 2020

У меня были некоторые проблемы с оператором if, определяющим, равны ли некоторые, но не все переменные, null, может ли кто-нибудь мне помочь с этим?


 else if (co != 2 || o != 0 || d != 0 || e != 6)
                       
                       if (co == null && o == null && d == null && e == null) {
                          alert("foo") 
                      document.getElementById("e1").innerHTML += "<div class='alert alert-danger alert-dismissible fade show' role='alert'><strong>Error</strong> You didn't enter anything.<button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>&times;</span></button></div>"
                
                       } else if (co != null || o != null || d != null || e != null){
                           alert("bar")
                       document.getElementById("e1").innerHTML += "<div class='alert alert-danger alert-dismissible fade show' role='alert'><strong>Nope.</strong> You entered the wrong code.<button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>&times;</span></button></div>"
                       }

PS: Я скопировал часть JS, поэтому вы видите, что else на самом деле не имеет if, чтобы запустить его (также я хотел сохранить все в секрете)

Ответы [ 2 ]

4 голосов
/ 11 июля 2020

Я бы поместил все эти переменные в массив, а затем использовал some, чтобы проверить, что некоторые из них равны нулю, а некоторые нет:

const arr = [co, o, d, e];
if (arr.some(x => x === null) && arr.some(x => x !== null)) {
    alert("some are null and some aren't");
}
0 голосов
/ 11 июля 2020

Я фактически закончил замену первой части сравнения на === вместо ==, и я также понял, что я помещаю значение в ’null’ (в виде строки), а на самом деле не как число, поэтому первое, если не удалось успешно определить, если null=‘null’, поэтому второй, если кажется, истинный

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...