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}))代码>您的代码简单易懂。复杂的一行代码不是更好的代码。您的代码简单易懂。复杂的一行代码不是更好的代码。