Динамически добавляем поля в объекты
Довольно часто возникает ситуация, когда необходимо динамически добавить поле в объект. Тут важно понять суть задачи. Не значение поля менять динамически, а, в зависимости от какого-то условия, объект должен иметь или не иметь определённое поле.
На первый взгляд это кажется довольно сложной задачей, но нам на помощь придёт 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
🤖.