Javascript 从多个对象中解构相同的变量

Javascript 从多个对象中解构相同的变量,javascript,object,javascript-objects,destructuring,Javascript,Object,Javascript Objects,Destructuring,我有三个物体 var first = {name:'ab', age:'12',year:'2010',color:'red'}; var second = {name:'ax', age:'14',year:'2011',mood:'sour'}; var third = {name:'ay', age:'15',year:'2012',dessert:'cake'}; 我需要访问first、second和third中的项目,这是我目前通过解构完成的 let {name, age, yea

我有三个物体

 var first = {name:'ab', age:'12',year:'2010',color:'red'};
var second = {name:'ax', age:'14',year:'2011',mood:'sour'};
var third = {name:'ay', age:'15',year:'2012',dessert:'cake'};
我需要访问first、second和third中的项目,这是我目前通过解构完成的

let {name, age, year, color} = a;
//perform some action here
let {name, age, year, mood} = b;
//perform some action here
let {name, age, year, dessert} = c;
//perform some action here.
注意:对于这个例子,我只显示了每个对象中的几个项目,在现实世界中,我有大约20多个项目,其中15个项目在所有项目中重复

由于我每次都会重复名称、年龄和年份,有没有一种方法可以优化代码,我可以在其他地方声明这3个变量,并在解构时提到这一点

let {name, age, year, color} = a;
//perform some action here
let {name, age, year, mood} = b;
//perform some action here
let {name, age, year, dessert} = c;
//perform some action here.
例如:

let commonVars = {name, age, year}
let {...commonvars, color} = a;
let {...commonvars, mood} = b;
let {...commonvars, dessert} = c;

因为我似乎一直在重复这个

您可以添加
updateCommonVars
函数,并拥有
commonVars
对象
,该对象保存所有公共值。将其用作
updateCommonVars(第一个)
复制到
commonVars
对象。并使用
commonVars.name

let updateCommonVars=(obj)=>{
用于(commonVars中的道具)
commonVars[prop]=obj[prop];
}
var first={姓名:'ab',年龄:'12',年份:'2010',颜色:'red'};
第二个变量={姓名:'ax',年龄:'14',年份:'2011',情绪:'sour'};
var third={姓名:'ay',年龄:'15',年份:'2012',甜点:'cake'};
让commonVars={name:null,age:null,year:null};
更新公共变量(第一);
设{color}=第一;
console.log(commonVars.name);
更新公共变量(第二);
设{mood}=second;

console.log(commonVars.name)为什么不使用函数<代码>({name,age,year})=>{/*随便什么*/}
不,没有。无论如何,你不能让相同的名字重复。为什么你不能用点符号来代替创建新的变量呢
first.name
second.name
。即使这个
第一个
/
第十五个
似乎也是错误的使用为什么不使用数组?@VLAZ,这些是多个对象,其中大约15个变量重复,而其余的是唯一的。所以我也不能假设。让我更新这个问题