Javascript 如何移动对象属性';将名称转换为属性值
我有一组要转换的对象:Javascript 如何移动对象属性';将名称转换为属性值,javascript,object,properties,transformation,Javascript,Object,Properties,Transformation,我有一组要转换的对象: let A = [ { institution: 19.5, region: "EUROPE", code: "Bosnia and Herzegovina", code3: "BIH" }, { financial: 15.5, region: "EUROPE",
let A = [
{
institution: 19.5,
region: "EUROPE",
code: "Bosnia and Herzegovina",
code3: "BIH"
},
{
financial: 15.5,
region: "EUROPE",
code: "Bulgaria",
code3: "BGR"
},
{
institution: 15.9,
region: "EUROPE",
code: "Croatia",
code3: "HRV"
},
{
deflation: 40.6,
region: "EUROPE",
code: "Cyprus",
code3: "CYP"
}
]
我最后想要的是:
B = [
{
name: "institution",
value: 19.5,
region: "EUROPE",
code: "Bosnia and Herzegovina",
code3: "BIH"
},
{
name: "financial",
value: 15.5,
region: "EUROPE",
code: "Bulgaria",
code3: "BGR"
},
{
name: "institution",
value: 15.9,
region: "EUROPE",
code: "Croatia",
code3: "HRV"
},
{
name: "deflation",
value: 40.6,
region: "EUROPE",
code: "Cyprus",
code3: "CYP"
}
]
我已经使用了下面的代码,但我想知道是否有更优雅的方法来实现这一点
A.forEach(e => {
e["name"] = Object.keys(e)[0]
e["value"] = Object.values(e)[0]
delete e[Object.keys(e)[0]];
})
Object.keys()
返回一个数组,但不能将其视为数组
如果您知道只有一个未知属性名需要转置,并且您知道所有其他属性名,则可以使用已知属性和…rest
对对象进行反结构,并使用object.entries()设置名称和值
let A=[{机构:19.5,区域:“欧洲”,代码:“波斯尼亚和黑塞哥维那”,代码3:“波黑”},
{财务:15.5,区域:“欧洲”,代码:“保加利亚”,代码3:“BGR”},
{机构:15.9,区域:“欧洲”,代码:“克罗地亚”,代码3:“HRV”},
{通货紧缩:40.6,区域:“欧洲”,代码:“塞浦路斯”,代码3:“塞浦路斯”}]
设res=A.map({region,code,code3,…rest})=>{
常量[名称,值]=对象.条目(rest)[0]
返回{name,value,region,code,code3}
})
console.log(res)