Как вернуть true или false для троичного оператора в Javascript? - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь преобразовать приведенный ниже код в сокращенную версию с тернарным оператором

     if (sum % 10 === 0) {
        return true;
     } else {
        return false;
      }

Он отлично работает как есть, но когда я изменяю его на

sum % 10 === 0 ? return true : return false; 

Я получаю синтаксическую ошибку, и когда я изменяю ее на

sum % 10 === 0 ? true : false; 

, она не работает как положено.

Если кто-нибудь сможет просветить меня о том, что происходит, я буду очень признателен.

Ответы [ 3 ]

5 голосов
/ 16 апреля 2020

Выражение (sum % 10 === 0) само по себе логическое, поэтому просто верните его:

return sum % 10 === 0
3 голосов
/ 16 апреля 2020

Вы можете просто сделать:

return !(sum % 10)

, если (sum % 10) === 0, тогда !(sum % 10) вернет true, иначе false.

0 голосов
/ 16 апреля 2020

То, что вы пытались:

sum % 10 === 0 ? return true : return false; 

Это не работает, потому что return это утверждение, а не выражение. Оператор нельзя использовать внутри выражения.

sum % 10 === 0 ? true : false; 

Это работает, но без оператора return это просто выражение без его использования.

Наконец, вам нужно чтобы вернуть результат условного (троичного) оператора ?:, например

return sum % 10 === 0 ? true : false; 

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

return sum % 10 === 0;
...