Как удачнее сравнить переменную с двумя и более строками?
Допустим, есть переменная с заранее неизвестной строкой.
Надо сделать что-то вроде такого: 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, время: 08:15. |