Динамически добавляем поля в объекты
Довольно часто возникает ситуация, когда необходимо динамически добавить поле в объект. Тут важно понять суть задачи. Не значение поля менять динамически, а, в зависимости от какого-то условия, объект должен иметь или не иметь определённое поле.
На первый взгляд это кажется довольно сложной задачей, но нам на помощь придёт ES6 и оператор spread.
const condition = false;const obj = { ...(condition ? {a: 1} : {}), b: 2}Таким образом, если условие выполнено, то итоговый объект будет выглядеть так:
{ a: 1, b: 2}А если условие не выполнено, то в оператор spread попадёт пустой объект и он ничего не вернёт. Поэтому итоговый объект будет таким:
{ b: 2}Этот метод уже не раз выручал меня в рабочих проектах.
Кстати, оператор spread также может помочь и в случае, если вам нужно по условию добавить значения в массив.
const condition = false;const arr = [ ...(condition ? [a] : []), 'b']Вот такой вот полезный оператор spread 🤖.