Javascript JS,将具有类似值的数组转换为dict

Javascript JS,将具有类似值的数组转换为dict,javascript,Javascript,我有一张这样的清单 0: (3) ["United States and Canada", "2018", 8281532000] 1: (3) ["Europe, Middle East and Africa", "2018", 3963707000] 2: (3) ["Latin America", "2018", 2237697000] 3: (3) ["As

我有一张这样的清单

0: (3) ["United States and Canada", "2018", 8281532000]
1: (3) ["Europe,  Middle East and Africa", "2018", 3963707000]
2: (3) ["Latin America", "2018", 2237697000]
3: (3) ["Asia-Pacific", "2018", 945816000]
4: (3) ["United States and Canada", "2019", 10051208000]
5: (3) ["Europe,  Middle East and Africa", "2019", 5543067000]
6: (3) ["Latin America", "2019", 2795434000]
7: (3) ["Asia-Pacific", "2019", 1469521000]
8: (3) ["United States and Canada", "2020", 5542446000]
9: (3) ["Europe,  Middle East and Africa", "2020", 3616011000]
10: (3) ["Latin America", "2020", 1578821000]
11: (3) ["Asia-Pacific", "2020", 1052800000]
我想把它转换成一个dict,它的区域名称与key相似,第二个key是“years”,并为一个列表加上两个key“year”:2018和“value”:000000000。 大概

[
{
    "area": "United States and Canada", 
    "years": [
        {
            "year": 2018, 
            "revenue": 11111
        }, 
        {
            "year": 2019, 
            "revenue": 22222
        }, 
        {
            "year": 2020, 
            "revenue": 333333
        }
    ]
}

您可以使用
Map
对象按区域过滤它们,然后将每个区域的元数据存储到列表中

const arr=[
[“美国和加拿大”,“2018”,8281532000],
[“欧洲、中东和非洲”,“2018”,3963707000],
[“拉丁美洲”,“2018”,2237697000],
[“亚太地区”,“2018”,945816000],
[“美国和加拿大”,“2019”,10051208000],
[“欧洲、中东和非洲”,“2019”,5543067000],
[“拉丁美洲”,“2019”,2795434000],
[“亚太”、“2019”、1469521000],
[“美国和加拿大”,“2020”,5542446000],
[“欧洲、中东和非洲”,“2020”,3616011000],
[“拉丁美洲”,“2020”,1578821000],
[“亚太”、“2020年”,1052800000]
];
const convert=(列表)=>{
const regionMap=新映射();
常量结果=[];
对于(列表中的项目){
//如果该区域尚未定义,请为其创建一个新的.list
如果(!regionMap.has(item[0])regionMap.set(item[0],]);
//为当前区域添加新的{year,revenue}条目
regionMap.get(项[0]).push({
年份:项目[1],
收入:项目[2]
});
}
for(让输入[…regionMap.entries()]){
结果:推({
区域:条目[0],
年份:条目[1]
});
}
返回结果;
};

console.log(convert(arr))非常感谢!