Javascript和数组

Javascript和数组,javascript,highcharts,Javascript,Highcharts,尽管我有多年的编程经验,但这一直是我的跟腱 我有一个类似这样的json结果,我想从中使用highcharts.com绘制一个时间序列 [{"iso-2":"DE","year":"2000","value":"0"},{"iso-2":"FR","year":"2000","value":"0"},{"iso-2":"KE","year":"2000","value":"0"},{"iso-2":"DE","year":"2001","value":"0"},{"iso-2":"FR","yea

尽管我有多年的编程经验,但这一直是我的跟腱

我有一个类似这样的json结果,我想从中使用highcharts.com绘制一个时间序列

[{"iso-2":"DE","year":"2000","value":"0"},{"iso-2":"FR","year":"2000","value":"0"},{"iso-2":"KE","year":"2000","value":"0"},{"iso-2":"DE","year":"2001","value":"0"},{"iso-2":"FR","year":"2001","value":"0"},{"iso-2":"KE","year":"2001","value":"0"},{"iso-2":"DE","year":"2002","value":"0"},{"iso-2":"FR","year":"2002","value":"0"},{"iso-2":"KE","year":"2002","value":"0"},{"iso-2":"DE","year":"2003","value":"9355"},{"iso-2":"FR","year":"2003","value":"19490"},{"iso-2":"KE","year":"2003","value":"0"},{"iso-2":"DE","year":"2004","value":"0"},{"iso-2":"FR","year":"2004","value":"0"},{"iso-2":"KE","year":"2004","value":"0"},{"iso-2":"DE","year":"2005","value":"11"},{"iso-2":"FR","year":"2005","value":"8"},{"iso-2":"KE","year":"2005","value":"0"},{"iso-2":"DE","year":"2006","value":"2"},{"iso-2":"FR","year":"2006","value":"1388"},{"iso-2":"KE","year":"2006","value":"0"},{"iso-2":"DE","year":"2007","value":"0"},{"iso-2":"FR","year":"2007","value":"0"},{"iso-2":"KE","year":"2007","value":"0"}]
我希望动态地将上述结果生成一个如下所示的数组

series: [{
            name: 'KE',
            data: [0,0,0,0,0,0,0,0]
        }, {
            name: 'FR',
            data: [0,0,0,19490,0,8,1388,0]
        }, {
            name: 'DE',
            data: [0,0,0,9355,0,2,0]
        }]
非常感谢您调查此事

var gathered = data.reduce(function(prev, curr) {
    if (prev.hasOwnProperty(curr["iso-2"])) {
        prev[curr["iso-2"]].push(parseInt(curr["value"]));
    } else {
        prev[curr["iso-2"]] = [parseInt(curr["value"])];
    }
    return prev;
}, {});

var result = [];
for (var country in gathered) {
    var obj = {};
    obj["name"] = country;
    obj["data"] = gathered[country];
    result.push(obj);
}

console.log(result);
输出

[ { name: 'DE', data: [ 0, 0, 0, 9355, 0, 11, 2, 0 ] },
  { name: 'FR', data: [ 0, 0, 0, 19490, 0, 8, 1388, 0 ] },
  { name: 'KE', data: [ 0, 0, 0, 0, 0, 0, 0, 0 ] } ]
输出

[ { name: 'DE', data: [ 0, 0, 0, 9355, 0, 11, 2, 0 ] },
  { name: 'FR', data: [ 0, 0, 0, 19490, 0, 8, 1388, 0 ] },
  { name: 'KE', data: [ 0, 0, 0, 0, 0, 0, 0, 0 ] } ]
输出

[ { name: 'DE', data: [ 0, 0, 0, 9355, 0, 11, 2, 0 ] },
  { name: 'FR', data: [ 0, 0, 0, 19490, 0, 8, 1388, 0 ] },
  { name: 'KE', data: [ 0, 0, 0, 0, 0, 0, 0, 0 ] } ]
输出

[ { name: 'DE', data: [ 0, 0, 0, 9355, 0, 11, 2, 0 ] },
  { name: 'FR', data: [ 0, 0, 0, 19490, 0, 8, 1388, 0 ] },
  { name: 'KE', data: [ 0, 0, 0, 0, 0, 0, 0, 0 ] } ]

考虑到JSON中的数据是按年份排序的,我可以这样想:

var json_data = '[{"iso-2":"DE","year":"2000","value":"0"},...]'; // This is the json data you have.
var data = JSON.parse(json_data); // Convert JSON data to javascript object or array

// Organize the data in an object
var organized = {};

data.forEach(function (item){
    if (typeof organized[item['iso-2']] !== 'undefined'){
        organized[item['iso-2']].push(item['value']);
    } else {
        organized[item['iso-2']] = [item['value']];
    }
});

// Convert the object to the format you need
var series = [];

for (i in organized){
    series.push({
        name: i,
        data: organized[i]
    });
}

考虑到JSON中的数据是按年份排序的,我可以这样想:

var json_data = '[{"iso-2":"DE","year":"2000","value":"0"},...]'; // This is the json data you have.
var data = JSON.parse(json_data); // Convert JSON data to javascript object or array

// Organize the data in an object
var organized = {};

data.forEach(function (item){
    if (typeof organized[item['iso-2']] !== 'undefined'){
        organized[item['iso-2']].push(item['value']);
    } else {
        organized[item['iso-2']] = [item['value']];
    }
});

// Convert the object to the format you need
var series = [];

for (i in organized){
    series.push({
        name: i,
        data: organized[i]
    });
}

考虑到JSON中的数据是按年份排序的,我可以这样想:

var json_data = '[{"iso-2":"DE","year":"2000","value":"0"},...]'; // This is the json data you have.
var data = JSON.parse(json_data); // Convert JSON data to javascript object or array

// Organize the data in an object
var organized = {};

data.forEach(function (item){
    if (typeof organized[item['iso-2']] !== 'undefined'){
        organized[item['iso-2']].push(item['value']);
    } else {
        organized[item['iso-2']] = [item['value']];
    }
});

// Convert the object to the format you need
var series = [];

for (i in organized){
    series.push({
        name: i,
        data: organized[i]
    });
}

考虑到JSON中的数据是按年份排序的,我可以这样想:

var json_data = '[{"iso-2":"DE","year":"2000","value":"0"},...]'; // This is the json data you have.
var data = JSON.parse(json_data); // Convert JSON data to javascript object or array

// Organize the data in an object
var organized = {};

data.forEach(function (item){
    if (typeof organized[item['iso-2']] !== 'undefined'){
        organized[item['iso-2']].push(item['value']);
    } else {
        organized[item['iso-2']] = [item['value']];
    }
});

// Convert the object to the format you need
var series = [];

for (i in organized){
    series.push({
        name: i,
        data: organized[i]
    });
}

可能重复我写了又写,直到我的手指受伤。我在创建这个系列的过程中陷入了循环,我尝试了for循环,并使用了jQuery的filter()和map()函数,但逻辑并不是那么简单。我已经检查了链接,但是我们正在绘制一些稍微不同的东西,但是正在尝试答案。谢谢你的写作,我相信:)我想说的是,一些代码会更有用。可能重复我写的和重写的,直到我的手指受伤。我在创建这个系列的过程中陷入了循环,我尝试了for循环,并使用了jQuery的filter()和map()函数,但逻辑并不是那么简单。我已经检查了链接,但是我们正在绘制一些稍微不同的东西,但是正在尝试答案。谢谢你的写作,我相信:)我想说的是,一些代码会更有用。可能重复我写的和重写的,直到我的手指受伤。我在创建这个系列的过程中陷入了循环,我尝试了for循环,并使用了jQuery的filter()和map()函数,但逻辑并不是那么简单。我已经检查了链接,但是我们正在绘制一些稍微不同的东西,但是正在尝试答案。谢谢你的写作,我相信:)我想说的是,一些代码会更有用。可能重复我写的和重写的,直到我的手指受伤。我在创建这个系列的过程中陷入了循环,我尝试了for循环,并使用了jQuery的filter()和map()函数,但逻辑并不是那么简单。我已经检查了链接,但是我们正在绘制一些稍微不同的东西,但是正在尝试答案。谢谢你的写作,我相信:)我想说的是,一些代码会更有用。非常感谢!如果我有你的地址,我会在你家门口送一箱啤酒@谢谢你:请考虑接受这个答案,如果它对你有帮助的话:“非常感谢你!”如果我有你的地址,我会在你家门口送一箱啤酒@谢谢你:请考虑接受这个答案,如果它对你有帮助的话:“非常感谢你!”如果我有你的地址,我会在你家门口送一箱啤酒@谢谢你:请考虑接受这个答案,如果它对你有帮助的话:“非常感谢你!”如果我有你的地址,我会在你家门口送一箱啤酒@谢谢你:请考虑接受这个答案,如果它对你有帮助的话):它的工作也很有魅力。不需要像第2行那样转换为Json,因为它已经是Json了。我喜欢你的解决方案,因为我不需要添加额外的JS,它也像一个魅力。不需要像第2行那样转换为Json,因为它已经是Json了。我喜欢你的解决方案,因为我不需要添加额外的JS,它也像一个魅力。不需要像第2行那样转换为Json,因为它已经是Json了。我喜欢你的解决方案,因为我不需要添加额外的JS,它也像一个魅力。不需要像第2行那样转换为Json,因为它已经是Json了。我喜欢你的解决方案,因为我不需要添加额外的js