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

Destructure same variables from multiple objects

我有 3 个对象

 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 commonVars = {name, age, year}
let {...commonvars, color} = a;
let {...commonvars, mood} = b;
let {...commonvars, dessert} = c;

因为我好像一直在一遍又一遍地重复这个。

您可以添加 updateCommonVars 函数并使 commonVars object 包含所有常用值。使用它作为 updateCommonVars(first);values 复制到 commonVars 对象。并使用 commonVars.name

let updateCommonVars = (obj) => {
  for (prop in commonVars)
    commonVars[prop] = obj[prop];
}

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'};

let commonVars = {name:null, age:null, year:null};

updateCommonVars(first);
let { color } = first;
console.log(commonVars.name);

updateCommonVars(second);
let { mood } = second;
console.log(commonVars.name);