2016-11-09 2 views
2

Я все еще привык к деструктуризации в ES2015/ES6 и задавался вопросом, есть ли хороший способ клонировать определенные ключи объекта, используя его. Это немного сложно объяснить словами, поэтому я позволю коду говорить. Вот упрощенная версия того, что у меня есть на данный момент:ES6 destructuring/cloning подмножество объекта

const objectWithLoadsOfData = { 
    a: 'a', 
    b: 'b', 
    c: 'c', 
    d: 'd' 
}; 

const objectWithDataSubset = { 
    a: objectWithLoadsOfData.a, 
    b: objectWithLoadsOfData.b 
} 

Он работает, но мне кажется, что это может быть упрощено с деструктуризации каким-то образом. Потенциально что-то вроде:

const objectWithDataSubset = objectWithLotsOfData {a, b}; 

Очевидно, что это недопустимо, но существует ли что-то подобное?

ответ

0

Я не знаю о функциональности, которая работает точно так, как вы ее описываете.

Однако с ES6 вы можете использовать a shorter notation где имя ключа приравнивает имя переменной, которая содержит значение, т.е. {a: a, b: b} эквивалентно {a, b}.

const {a, b} = objectWithLotsOfData; 
const objectWithDataSubset = {a, b} 
+0

Я никогда не думал об использовании назначений левой руки, это неплохо обходное решение. Когда вы начинаете использовать правильные данные, это становится довольно тяжелым, но это, вероятно, правильный ответ. –