Если
оптимизировать скорость, то нужно использовать силу хеш-таблиц, поиск по которым занимает примерно O(1):
const NEEDED_STATUS = { complete: true, deleted: true, updated: true}
if (NEEDED_STATUS[status]) { /*... */ }
Однако стоит иметь в виду два момента:
- Это экономия на спичках.
- Прирост производительности начнётся примерно, когда количество вариантов будет больше 4. Реальный прирост будет при очень большом количестве вариантов.
Хеш-таблицы (или возможность из создания) есть практически в любом ЯП.
Если же
оптимизировать красоту и понятность кода, то я бы предложил такое:
let is_complete = (status === 'complete');
let is_deleted = (status === 'deleted');
let is_updated = (status === 'updated');
if (is_complete || is_deleted || is_updated) { /*... */ }
При этом общий размер кода вырастет, но само условие станет более компактным и понятным. Кроме того, зачастую вот эти
is_что-то
нужны в других местах кода, которые тоже будут выглядеть опрятно, и в целом общее количество кода порой может даже уменьшиться.
Этот приём возможен в любом ЯП.