Если я правильно понимаю, кажется, синтаксис распространения хорошо подходит для того, что вам нужно.
Синтаксис расширения "...
" позволяет вам "распространять" пары ключ / значение от исходного объекта (например, test
) к целевому объекту (например, destruct
):
const test = {
a: 'hey',
b: 'hello',
c: 'goodbye'
}
const destruct = {
// {a,b}: test <-- invalid syntax
...test // equivalent using the "spread" syntax
};
console.log(destruct)
Кроме того, если вы хотите выбрать подмножество ключей из исходного объекта и распространить их в целевой объект, то это может быть достигнуто следующим:
const test = {
a: 'hey',
b: 'hello',
c: 'goodbye'
}
/* Spread subset of keys from source object to target object */
const welcomeOnly = {
...({ a, b } = test, { a, b })
}
console.log('exclude goodbye, show welcomes only:', welcomeOnly);
Второй пример работает путем разрушения исходного объекта (то есть test
) в объект с подмножеством ключей, которые мы хотим (a
и b
).
В рамках этого выражения (т. Е. Всего между (
и )
) эти ключи доступны как локальные переменные. Мы пользуемся этим и передаем их новому объекту (например, { a, b }
). Поскольку новый объект объявляется после ,
, он возвращается как результат выражения.