Как удачнее сравнить переменную с двумя и более строками?
Допустим, есть переменная с заранее неизвестной строкой.
Надо сделать что-то вроде такого:
let S = getS();
if (S === 'Test' || S === 'Dev' || S === 'Debug' || S === 'lacrymachristi' || ... ) {
...
};
Собственно вопрос, можно ли это как-то красиво/удобно/читабельно облагородить (и чтоб производительность не портило)?Спасибо! |
Не уверен, что по производительности это будет более эффективно, однако разницу вы вряд ли заметите, а + к читабельности будет.
const string=getString();
const allowedValues=['Test','Dev','etc.'];
if(allowedValues.indexOf(string)>=0)
//do something
|
Svorg,
или так
const obj = {'Test' : true,'Dev' : true, 'etc.' : true};
if(obj[S])
|
Цитата:
ну а если строк мало, то да, массив и indexOf, нагляднее и лаконичнее |
Большое спасибо!
|
console.log(['Test', 'Dev', 'Debug', 'lacrymachristi'].some(v => v === 'Test')) |
гм... Думаю будет интересно сравнить это по производительности... :3
|
Svorg,
по производительности, обращение к свойству объекта |
Цитата:
и кстати Map может оказаться даже быстрее |
в примере используются строки
значит можно и так /^(TestDev|Debug|lacrymachristi)$/.test(value) |
| Часовой пояс GMT +3, время: 15:12. |