Javascript 创建类似json的键和值

Javascript 创建类似json的键和值,javascript,underscore.js,Javascript,Underscore.js,这是我的json数据 我想用下划线来做这件事 var data1=[ {"year":2000, "country":"Madagascar", "country_id":847, "indicator":"Current account balance - National Currency (millions)" }, {"year":2005, "country":"Madagascar", "country_id"

这是我的json数据 我想用下划线来做这件事

var data1=[
    {"year":2000,
     "country":"Madagascar",
     "country_id":847,
     "indicator":"Current account balance - National Currency (millions)"
    },
    {"year":2005,
     "country":"Madagascar",
     "country_id":847,
     "indicator":"Current account balance - National Currency (millions)"
    },
    {"year":2000,
     "country":"Madagascar",
     "country_id":847,
     "indicator":"Net Income - National Currency (millions)"
    },
    {"year":2005,
     "country":"Madagascar",
     "country_id":847,
     "indicator":"Net Income - National Currency (millions)"
    }
]
有谁能帮我解决这个问题吗 使用下划线.js下划线有一个u.groupBy()方法可以完成繁重的工作,但它会创建一个对象,每个值都有一个键:

{
  "key":"Madagascar"
  "values":[
    {"year":2000,
     "country":"Madagascar",
     "country_id":847,
     "indicator":"Current account balance - National Currency (millions)"
    },
    {"year":2005,
     "country":"Madagascar",
     "country_id":847,
     "indicator":"Current account balance - National Currency (millions)"
    }
  ]
}
下面是groupedData1的值:

var groupedData1 = _.groupBy(data1, 'country');
要转换为键/值数组,可以使用.each()和.keys()遍历每个国家/地区:

{"Madagascar": [
    {
        "year": 2000,
        "country": "Madagascar",
        "country_id": 847,
        "indicator": "Current account balance - National Currency (millions)"
    }, 
    {
        "year": 2005,
        "country": "Madagascar",
        "country_id": 847,
        "indicator": "Current account balance - National Currency (millions)"
    }, 
    {
        "year": 2000,
        "country": "Madagascar",
        "country_id": 847,
        "indicator": "Net Income - National Currency (millions)"
    }, 
    {
        "year": 2005,
        "country": "Madagascar",
        "country_id": 847,
        "indicator": "Net Income - National Currency (millions)"
    }
]}
var groupedData2 = [];

_.each(_.keys(groupedData1), function (country) {
    groupedData2.push({
        "key": country, 
        "values": groupedData1[country]
    });
});
这将创建一个对象数组,每个国家一个对象:

{"Madagascar": [
    {
        "year": 2000,
        "country": "Madagascar",
        "country_id": 847,
        "indicator": "Current account balance - National Currency (millions)"
    }, 
    {
        "year": 2005,
        "country": "Madagascar",
        "country_id": 847,
        "indicator": "Current account balance - National Currency (millions)"
    }, 
    {
        "year": 2000,
        "country": "Madagascar",
        "country_id": 847,
        "indicator": "Net Income - National Currency (millions)"
    }, 
    {
        "year": 2005,
        "country": "Madagascar",
        "country_id": 847,
        "indicator": "Net Income - National Currency (millions)"
    }
]}
var groupedData2 = [];

_.each(_.keys(groupedData1), function (country) {
    groupedData2.push({
        "key": country, 
        "values": groupedData1[country]
    });
});

你的问题是?所以你不想要“净收入”?我不想这样,我想根据国家的uniq及其价值来过滤它。在这个样本数据中,每年有两个指标。您想选择单个指标,还是分开指标?能否编辑问题以显示所需的JSON格式?我不确定单独的指示器应该如何显示。