Как вернуть истину при проверке 4 значений в Javascript?

У меня есть оператор 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, где я ожидал увидеть «Оба фиолетовых» в журнале консоли, но я вижу «Оба красных».

Любые идеи, что мне нужно изменить?

ваш код работает именно так, как вы описали. Учитывая ваш фрагмент, //do something будет выполнено.

Randy Casburn 18.06.2019 16:35

это работает для меня в данный момент

RenaudC5 18.06.2019 16:37

Спасибо за ваши комментарии, чтобы упростить код на StackOverflow, я объявил переменные, но на самом деле они созданы из гораздо большего фрагмента кода на моем сайте. Я поступил глупо, поскольку, вернувшись к моему коду, я показал, что переменные были строками, а я сравнивал их с числом. Я исправлю свой код, и он должен работать, как показано выше.

David 18.06.2019 16:44
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
5
3
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я подошел к проблеме с неправильной точки зрения, в моем примере выше первый оператор if вернул TRUE по определенным критериям. Во втором операторе if средняя часть (первая else if) вернула TRUE по определенным критериям.

Я не мог понять, пока третий оператор if не работал должным образом, но это было потому, что первая и вторая части возвращали TRUE.

Подход к проблеме (в моем большем наборе кода) без использования операторов if (и других частей), но с использованием другой методологии решил проблему.

Спасибо, Рэнди и Колин, за вашу помощь.

Другие вопросы по теме