У меня есть оператор if, который должен допускать 4 значения параметра, и у меня возникают проблемы с правильным синтаксисом.
Я протестировал 2 части приведенного ниже оператора ИЛИ по отдельности, и они возвращают истину и ложь соответственно, но я хочу, чтобы первый аргумент возвращал истину для того, чтобы что-то произошло.
var d = 4;
var t = 2;
if ( (d >= 3.5 && d < 6) || (t >= 3.5 && t < 6) ){
console.info('true'); // do something
} else {
console.info('false');
}Я ожидаю, что оператор if будет TRUE, потому что первая часть оператора OR верна, и любой код в нем будет выполняться.
ОБНОВИТЬ-------------------------------------------
Все еще возникают проблемы, я расширил пример кода, включив в него то, что вижу
var dlG = "2";
var dl = "3.5";
if (parseFloat(dlG) < 3.5){
console.info("DLG Red");
}else if ( parseFloat(dlG) >= 3.5 && parseFloat(dlG) < 6 ){
console.info("DLG Purple");
}else if (parseFloat(dlG) >= 6){
console.info("DLG Green");
}
if (parseFloat(dl) < 3.5){
console.info("dl Red");
}else if ( parseFloat(dl) >= 3.5 && parseFloat(dl) < 6 ){
console.info("dl Purple");
}else if (parseFloat(dl) >= 6){
console.info("dl Green");
}
if ((parseFloat(dl) < 3.5) || (parseFloat(dlG) < 3.5)){
console.info("Both Red");
}else if ((parseFloat(dl) >= 3.5 && parseFloat(dl) < 6 ) || (parseFloat(dlG) >= 3.5 && parseFloat(dlG) < 6 )){
console.info("Both Purple");
}else if ((parseFloat(dl) >= 6) || (parseFloat(dlG) >= 6)){
console.info("Both Green");
}По сути, первый и второй операторы если работают независимо, но я хотел объединить их с оператором OR в третьем операторе if, где я ожидал увидеть «Оба фиолетовых» в журнале консоли, но я вижу «Оба красных».
Любые идеи, что мне нужно изменить?
это работает для меня в данный момент
Спасибо за ваши комментарии, чтобы упростить код на StackOverflow, я объявил переменные, но на самом деле они созданы из гораздо большего фрагмента кода на моем сайте. Я поступил глупо, поскольку, вернувшись к моему коду, я показал, что переменные были строками, а я сравнивал их с числом. Я исправлю свой код, и он должен работать, как показано выше.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я подошел к проблеме с неправильной точки зрения, в моем примере выше первый оператор if вернул TRUE по определенным критериям. Во втором операторе if средняя часть (первая else if) вернула TRUE по определенным критериям.
Я не мог понять, пока третий оператор if не работал должным образом, но это было потому, что первая и вторая части возвращали TRUE.
Подход к проблеме (в моем большем наборе кода) без использования операторов if (и других частей), но с использованием другой методологии решил проблему.
Спасибо, Рэнди и Колин, за вашу помощь.
ваш код работает именно так, как вы описали. Учитывая ваш фрагмент, //do something будет выполнено.