javascript - 如何为数组中的每个对象提供自己的键?

标签 javascript key key-value

我正在尝试更改我的数据,使我的对象的每个元素都有自己的键。我认为我的问题相当简单,但我还没有找到解决方法。

我的数据现在的排列方式:

[
  {
    "country name": "Qatar",
    "GDP": "140,649.2",
    "country code": "QAT"
  },
  {
    "country name": "MacaoSAR,China",
    "GDP": "139,767.3",
    "country code": "LUX"
  },
...

我希望数据的排列方式:

data: {    
    'QAT': {
         "country name": "Qatar",
         "GDP": "140,649.2",
       },
    'LUX': {
         "country name": "MacaoSAR,China",
         "GDP": "139,767.3",
       },
 ...

请不要介意不同的键值对。我完全感兴趣的是如何为 {} 括号内的值提供键值,如第二个示例所示。

最佳答案

非循环“国家代码”键的解决方案:

var arr = [    // exemplary array
    {
        "country name": "Qatar",
        "GDP": "140,649.2",
        "country code": "QAT"
    },
    {
        "country name": "MacaoSAR,China",
        "GDP": "139,767.3",
        "country code": "LUX"
    }
], rearranged = {};

arr.forEach(function(obj){
    var info = {};
    Object.keys(obj).forEach((k) => k === "country code" || (info[k] = obj[k]));
    rearranged[obj["country code"]] = info;
});

console.log(JSON.stringify(rearranged, 0, 4));

输出:

{
    "QAT": {
        "country name": "Qatar",
        "GDP": "140,649.2"
    },
    "LUX": {
        "country name": "MacaoSAR,China",
        "GDP": "139,767.3"
    }
}

关于javascript - 如何为数组中的每个对象提供自己的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36989381/

相关文章:

javascript - react-easy-state - 一个商店通过去抖触发其他商店的变化

MySQL 两列唯一键

c# - 按键获取字典值

python - 获取内部字典中的至少三个值(Python 3.4)

sql - 如何在postgresql中将两行转换为键值json对象?

javascript - 访问存储在数组中的 Javascript 变量

javascript - 从服务器端调用 Javascript 函数 C#

javascript - jqgrid 完整月份名称

Python:字典列表,如何获取列表中多个项目的特定键的值?

Python用于键,字典中的值