Javascript 一个用于创建具有上一个嵌套对象的所有关键帧,但每个值的关键帧-值对子集的对象的线性

Javascript 一个用于创建具有上一个嵌套对象的所有关键帧,但每个值的关键帧-值对子集的对象的线性,javascript,object,Javascript,Object,我有一个表单数组: const obj1={ 关键1:{ a:‘x’, b:2 }, 关键2:{ a:‘y’, b:4 }, 关键3:{ a:‘z’, b:3 } } 我想创建一个新对象obj2,其形式如下: const obj2={ 键1:'x', 键2:‘y’, 键3:'z', } 我可以用…在循环中做,但我需要一个衬里 constobj2={}; 用于(输入obj1){ obj2[key]=obj1[key].a } 请告诉我如何为此创建一行程序。您可以获取Object.entrie

我有一个表单数组:

const obj1={
关键1:{
a:‘x’,
b:2
},
关键2:{
a:‘y’,
b:4
},
关键3:{
a:‘z’,
b:3
}
}
我想创建一个新对象
obj2
,其形式如下:

const obj2={
键1:'x',
键2:‘y’,
键3:'z',
}
我可以用…在循环中做,但我需要一个衬里

constobj2={};
用于(输入obj1){
obj2[key]=obj1[key].a
}

请告诉我如何为此创建一行程序。

您可以获取Object.entries,然后使用
reduce

const obj1={key1:{a:x',b:2},key2:{a:y',b:4},key3:{a:z',b:3};
const result=Object.entries(obj1).reduce((a[key,val])=>(a[key]=val.a,a),{});

控制台日志(结果)您可以获取Object.entries,然后使用
reduce

const obj1={key1:{a:x',b:2},key2:{a:y',b:4},key3:{a:z',b:3};
const result=Object.entries(obj1).reduce((a[key,val])=>(a[key]=val.a,a),{});

控制台日志(结果)您可以将条目映射为新对象的分解结构

const
object={key1:{a:x',b:2},key2:{a:y',b:4},key3:{a:z',b:3},
result=Object.fromEntries(Object.entries(Object.map)([k,{a}])=>[k,a]);

控制台日志(结果)您可以将条目映射为新对象的分解结构

const
object={key1:{a:x',b:2},key2:{a:y',b:4},key3:{a:z',b:3},
result=Object.fromEntries(Object.entries(Object.map)([k,{a}])=>[k,a]);

控制台日志(结果)您可以映射对象的键,并返回包含所需结构的每个元素的对象。然后可以将结果分散到新指定的对象中

const obj1={
关键1:{
a:‘x’,
b:2
},
关键2:{
a:‘y’,
b:4
},
关键3:{
a:‘z’,
b:3
}
};

log(Object.assign(…Object.keys(obj1.map)((k)=>({[k]:obj1[k].a}))您可以映射对象的键,并返回包含所需结构的每个元素的对象。然后可以将结果分散到新指定的对象中

const obj1={
关键1:{
a:‘x’,
b:2
},
关键2:{
a:‘y’,
b:4
},
关键3:{
a:‘z’,
b:3
}
};

log(Object.assign(…Object.keys(obj1.map)((k)=>({[k]:obj1[k].a}))您的代码简单易懂。复杂的一行代码不是更好的代码。您的代码简单易懂。复杂的一行代码不是更好的代码。