JavaScript对象文本和ES6-syntactic sugar将大对象解构为小对象?

JavaScript对象文本和ES6-syntactic sugar将大对象解构为小对象?,javascript,ecmascript-6,object-literal,Javascript,Ecmascript 6,Object Literal,我想知道的是;有没有一个更简单的语法捷径,我想在这里做什么 我在循环期间有一个大JSON对象,如下所示: let line = { first_name: ..., last_name: ..., title: ..., email: ..., facebook_account: ..., linkedin_account: ..., twitter_account: ..., instagram_account: ...,

我想知道的是;有没有一个更简单的语法捷径,我想在这里做什么

我在循环期间有一个大JSON对象,如下所示:

let line = {
    first_name: ...,
    last_name: ...,
    title: ...,
    email: ...,
    facebook_account: ...,
    linkedin_account: ...,
    twitter_account: ...,
    instagram_account: ...,
    snapchat_account: ...
};
然后,我将此有效负载分解为更小的对象:

let profile = {
    first_name: line.first_name,
    last_name: line.last_name,
    title: line.title,
    email: line.email
};

let social = {
    facebook_account: line.facebook_account,
    linkedin_account: line.linkedin_account,
    twitter_account: line.twitter_account,
    instagram_account: line.instagram_account,
    snapchat_account: line.snapchat_account 
};
ES6是否为我提供了减少每个属性重复的方法,如名字、facebook账户等。?属性名称在如何分解方面不一定很明显——它基于我们的数据模型


这是大量的手工工作,需要大量的重复。我想知道我是否错过了一些ES6的魔法,或者其他什么,这会让事情变得更糟。我并不是真的在寻找一个超级聪明的递归循环和一个机器学习算法……如果可能的话,只是简短的语法。:)

您可以使用对象析构函数:

let{variables}=obj

和单个变量分配:

let obj2={variables}

变量可以是多个,并用逗号分隔

解构时:
让{name,date,whatever}=obj

分配时:
让obj2={name,date,whatever}

let line={
名字:“扎克”,
姓:“弗里希”,
标题:“我的标题”,
电子邮件:“myemail@whatever",
facebook_账户:“fb”,
linkedin_账户:“li”,
推特账户:“推特”,
instagram_账户:“ia”,
snapchat_帐户:“sc”
};
让{名字、姓氏、头衔、电子邮件、facebook账户、linkedin账户、twitter账户、instagram账户、snapchat账户}=line;
let profile={
名字,
姓,
标题
电子邮件
};
让社会={
脸谱网账户,
linkedin_账户,
推特账户,
instagram_账户,
snapchat\u帐户
};
console.log(个人资料、社交)根据答案,您可以执行以下操作:

let line={
名字:“扎克”,
姓:“弗里希”,
标题:“我的标题”,
电子邮件:“myemail@whatever",
facebook_账户:“fb”,
linkedin_账户:“li”,
推特账户:“推特”,
instagram_账户:“ia”,
snapchat_帐户:“sc”
};
让profile=Object.keys(line).reduce(函数(obj,k){
如果(!k.endsWith(“U账户”))对象[k]=行[k];
返回obj;
}, {});
let social=Object.keys(line).reduce(函数(obj,k){
如果(k.endsWith(“U账户”)obj[k]=行[k];
返回obj;
}, {});
控制台日志(行);
控制台日志(概要文件);
console.log(社交)更准确。