В настоящее время существует специальное предложение по улучшению синтаксиса сокращений объектов JavaScript, который позволит «выбирать» именованные свойства без повторения:
const source = {id: "68646", genre: "crime", title: "Scarface"};
const target = {};
Object.assign(target, {source.title, source.id});
console.log(picked);
// {id: "68646", title: "Scarface"}
К сожалению, предложение, похоже, никуда не денется в ближайшее время. Последний раз редактировалось в июле 2017 года, а черновик на стадии 0 , предполагая, что автор, возможно, отказался от него или забыл об этом.
ES5 и более ранние (не строгий режим)
Самая краткая возможная стенограмма, которую я могу придумать, включает в себя функцию древнего языка, которую больше никто не использует:
Object.assign(target, {...(o => {
with(o) return { id, title };
})(source)});
with
операторы запрещены в строгом режиме, что делает этот подход бесполезным для 99,999% современного JavaScript. Немного обидно, потому что это единственное наполовину приличное использование, которое я нашел для этой with
функции. 😀
Object.assign
; es6 похожа на рождественскую елку с таким количеством подарков, я все еще нахожу подарки спустя месяцы после праздника