Вы можете начать с пустого объекта и просто добавить то, что нужно добавить:
_generateFilters() {
const status = get(this, 'controller.status');
const type = get(this, 'controller.type');
const name = get(this, 'controller.name');
const res = {};
!isEmpty(status) && (res.statusFilter = generateFilter(status));
!isEmpty(type) && (res.typeFilter = generateFilter(type));
!isEmpty(name) && (res.nameFilter = generateFilter(name));
return res;
}
Если вы не знакомы с этим способом использования &&
:
!isEmpty(status) && (res.statusFilter = generateFilter(status));
Это эквивалентно:
if (!isEmpty(status)) { res.statusFilter = generateFilter(status); }
Работает с &&
благодаря оценке короткого замыкания : Когда вы связываете условия с &&
, как только одно из этих условий ложно, остальное не выполняется. Следовательно, вы не добавите свойство к результату, если !isEmpty()
вернет false