Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何移动对象属性';将名称转换为属性值_Javascript_Object_Properties_Transformation - Fatal编程技术网

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)