如何为数组中的每个对象提供自己的密钥?

时间:2016-05-02 18:42:51

标签: 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",
       },
 ...

请不要介意不同的键值对。我纯粹对如何在{}括号中给出我的值一个关键值感兴趣,如第二个例子所示。

3 个答案:

答案 0 :(得分:1)

您可以将其作为对象而不是像这样的数组发送......

float(input())

答案 1 :(得分:1)

非重复node = Capybara.string(the_html.to_s) 密钥的解决方案:

"country code"

输出:

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));

答案 2 :(得分:0)

这将是一个问题,密钥需要在JSON中是唯一的,例如案例键可能会重复,因此您在解析时可能会丢失一些数据,很适合使用当前结构或者您可以使用数字作为键。