JS: короткая запись для выбора одного из нескольких массивов

Рейтинг: -1Ответов: 1Опубликовано: 24.03.2023

есть такой код для параметра компонента:

param = status === 'active' ? [r1, r2] :
status === 'inactive' ? [s1, s2, s3] :
status === 'completed' ? [t1]

а можно ли более компактно записать данный код?

что-то из серии:

param = [status === 'active' && ...[r1, r2], status === 'inactive' && ...[s1, s2, s3], status === 'completed' && ...[t1]]

Ответы

▲ 2Принят

Если цель - улучшить читаемость не прибегая к switch и вложенным тернарным операторам, то можно сделать через объект, например:

var statusesKV = {
  'active': [r1, r2],
  'inactive': [s1, s2, s3],
  'completed': [t1]
}

var param = statusesKV[status];