Как сократить ИЛИ условия в JavaScript? - PullRequest
0 голосов
/ 23 мая 2018

Итак, я просто хочу спросить, есть ли еще какой-нибудь лучший способ написать такие условия:

state === 'su' ||состояние === 'ja' ||state === 'fa'

Я имею в виду, может быть, они могут быть переписаны как:

state === ('su' || 'ja' ||'fa')

Спасибо

Ответы [ 4 ]

0 голосов
/ 23 мая 2018

Я думаю, что вы должны написать (state === 'su' || state === 'ja' || state === 'fa').

Это проще для понимания другим программистом.

0 голосов
/ 23 мая 2018

Как сказал @Paulpro - вы можете легко проверить множество входящих значений с помощью метода массива includes.Таким образом, мы можем сделать это более красиво, как вы хотите.

см. Для получения дополнительной информации: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

0 голосов
/ 23 мая 2018

Вы можете использовать метод indexOf (), который есть у массивов, например,

['su', 'ja', 'fa'].indexOf('ja') > -1; // true

. Для максимальной красоты, сначала объявите ваш массив как переменную, например,

valid = ['su', 'ja', 'fa', 'la', 'ti', 'do'];
valid.indexOf(state) > -1;

.Ваш код выглядит аккуратно, даже если список допустимых значений длинный.

Подробнее здесь https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

0 голосов
/ 23 мая 2018

Как заявил @Paulpro в своем комментарии.Вы можете использовать

['su','ja','fa'].includes( state ).

Я добавляю его в качестве ответа, так что это будет полезно для кого-то, и его легко найти.

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