Почему в моем утверждении If-Else по умолчанию используется значение "else"? - PullRequest
0 голосов
/ 20 февраля 2019

Я новичок в JavaScript и только что играл с этим небольшим упражнением IF-ELSE.По сути, слоты с 1 по 4 статичны для эксперимента с ||оператор.Const 'testSlot' - это тот, который я изменил с течением времени, чтобы попытаться выполнить сегмент "else if" моего кода;Например, если сейчас 9:10 вечера, я только что вручную изменил getHours на 21, а getMinutes на 10, а затем запустил код.

С учетом вышесказанного я не могу запустить ни один из первых двух console.logs, он всегда просто запускает "else", который равен трем.

Мой вопрос в основном, еслимое использование объекта даты было неправильным или синтаксис в моем операторе If-Else был неправильным.Очень хотелось бы получить указатель в правильном направлении.

Вот мой код:

const now = new Date();
const slot1 = now.getHours === 12 && getHours.getMinutes === 1;
const slot2 = now.getHours === 12 && getHours.getMinutes === 2;
const slot3 = now.getHours === 12 && getHours.getMinutes === 3;
const slot4 = now.getHours === 12 && getHours.getMinutes === 4;

const testSlot = now.getHours === 20 && getHours.getMinutes === 34;

if (slot1 || slot2 || slot3 || slot4) { 
  
  console.log('one');
  
} else if (testSlot) {  
  
  console.log('two'); 
  
} else {  
  
  console.log('three');
  
};

1 Ответ

0 голосов
/ 20 февраля 2019

.getHours() и .getMinutes() - оба функции и требуют скобок после.Кроме того, getHours.getMinuets() ничего не сделает.Вы должны сделать now.getMinutes().Я обновил ваш фрагмент для вас.Это все равно будет console.log три, но это только потому, что все операторы if ложны.Дождитесь до 12:01 и он должен сказать один.

const now = new Date();

const slot1 = now.getHours() === 12 && now.getMinutes() === 1;
const slot2 = now.getHours() === 12 && now.getMinutes() === 2;
const slot3 = now.getHours() === 12 && now.getMinutes() === 3;
const slot4 = now.getHours() === 12 && now.getMinutes() === 4;

console.log(now.getHours());
console.log(now.getMinutes());

const testSlot = now.getHours() === 20 && now.getMinutes() === 34;

if (slot1 || slot2 || slot3 || slot4) { 
  
  console.log('one');
  
} else if (testSlot) {  
  
  console.log('two'); 
  
} else {  
  
  console.log('three');
  
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...