Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将日期与来自JSON的Homerun数据相结合_Javascript_Json_Date_Highcharts - Fatal编程技术网

Javascript 将日期与来自JSON的Homerun数据相结合

Javascript 将日期与来自JSON的Homerun数据相结合,javascript,json,date,highcharts,Javascript,Json,Date,Highcharts,这个想法是从.json中获取“日期”和“本垒打”。将匹配的日期组合在一起,并将全垒打相加。目前,我可以显示与匹配日期组合在一起的日期,但全垒打不加起来,只是堆叠在一起。例如日期:“1985”,热门歌曲:“3”,全垒打:“101”} 最后,我想把所有的日期都与全垒打组合起来,并将其显示在条形图中的高图表中(但我会在以后找出答案) chart.json [{"Date": "1903", "Hits": "0", "Homeruns": "1"}, {"Date": "1903", "Hits":

这个想法是从.json中获取“日期”和“本垒打”。将匹配的日期组合在一起,并将全垒打相加。目前,我可以显示与匹配日期组合在一起的日期,但全垒打不加起来,只是堆叠在一起。例如日期:“1985”,热门歌曲:“3”,全垒打:“101”} 最后,我想把所有的日期都与全垒打组合起来,并将其显示在条形图中的高图表中(但我会在以后找出答案)

chart.json

[{"Date": "1903", "Hits": "0", "Homeruns": "1"}, {"Date": "1903", "Hits": "1", "Homeruns": "2"}, {"Date": "1904", "Hits": "0", "Homeruns": "1"}, {"Date": "1904", "Hits": "1", "Homeruns": "2"}, {"Date": "1904", "Hits": "1", "Homeruns": "1"}, {"Date": "1905", "Hits": "1", "Homeruns": "0"}, {"Date": "1907", "Hits": "0", "Homeruns": "1"}, {"Date": "1907", "Hits": "0", "Homeruns": "1"}, {"Date": "1909", "Hits": "1", "Homeruns": "0"}, {"Date": "1909", "Hits": "0", "Homeruns": "1"}, {"Date": "1909", "Hits": "0", "Homeruns": "0"}, {"Date": "1909", "Hits": "0", "Homeruns": "1"}, {"Date": "1910", "Hits": "0", "Homeruns": "2"}, {"Date": "1910", "Hits": "0", "Homeruns": "0"}, {"Date": "1910", "Hits": "?", "Homeruns": "1"}, {"Date": "1911", "Hits": "0", "Homeruns": "1"}, {"Date": "1912", "Hits": "0", "Homeruns": "1"}, {"Date": "1914", "Hits": "0", "Homeruns": "1"}, {"Date": "1915", "Hits": "1", "Homeruns": "0"}, {"Date": "1916", "Hits": "1", "Homeruns": "0"}, {"Date": "1916", "Hits": "?", "Homeruns": "1"}, {"Date": "1917", "Hits": "1", "Homeruns": "0"}, {"Date": "1918", "Hits": "1", "Homeruns": "0"}, {"Date": "1918", "Hits": "0", "Homeruns": "1"}, {"Date": "1918", "Hits": "0", "Homeruns": "1"}, {"Date": "1918", "Hits": "0", "Homeruns": "1"}, {"Date": "1919", "Hits": "0", "Homeruns": "0"}, {"Date": "1919", "Hits": "1", "Homeruns": "0"}, {"Date": "1919", "Hits": "0", "Homeruns": "2"}, {"Date": "1920", "Hits": "1", "Homeruns": "0"}, {"Date": "1920", "Hits": "1", "Homeruns": "0"}, {"Date": "1920", "Hits": "0", "Homeruns": "0"}, {"Date": "1920", "Hits": "0", "Homeruns": "1"}, {"Date": "1920", "Hits": "1", "Homeruns": "0"}, {"Date": "1920", "Hits": "1", "Homeruns": "0"}, {"Date": "1920", "Hits": "0", "Homeruns": "1"}, {"Date": "1922", "Hits": "0", "Homeruns": "2"}, {"Date": "1922", "Hits": "0", "Homeruns": "1"}, {"Date": "1931", "Hits": "0", "Homeruns": "1"}, {"Date": "1934", "Hits": "0", "Homeruns": "1"}, {"Date": "1935", "Hits": "0", "Homeruns": "1"}, {"Date": "1936", "Hits": "0", "Homeruns": "2"}, {"Date": "1937", "Hits": "0", "Homeruns": "1"}, {"Date": "1937", "Hits": "2", "Homeruns": "0"}, {"Date": "1940", "Hits": "0", "Homeruns": "1"}, {"Date": "1942", "Hits": "0", "Homeruns": "1"}, {"Date": "1946", "Hits": "1", "Homeruns": "0"}, {"Date": "1948", "Hits": "0", "Homeruns": "1"}, {"Date": "1949", "Hits": "1", "Homeruns": "0"}, {"Date": "1949", "Hits": "0", "Homeruns": "1"}, {"Date": "1950", "Hits": "1", "Homeruns": "0"}, {"Date": "1951", "Hits": "0", "Homeruns": "1"}, {"Date": "1951", "Hits": "0", "Homeruns": "1"}, {"Date": "1951", "Hits": "0", "Homeruns": "1"}, {"Date": "1951", "Hits": "0", "Homeruns": "1"}, {"Date": "1952", "Hits": "0", "Homeruns": "1"}, {"Date": "1952", "Hits": "0", "Homeruns": "1"}, {"Date": "1954", "Hits": "0", "Homeruns": "1"}, {"Date": "1954", "Hits": "2", "Homeruns": "1"}, {"Date": "1955", "Hits": "0", "Homeruns": "1"}, {"Date": "1956", "Hits": "2", "Homeruns": "1"}]
JS

function chartPage()
        {
            $.ajax(
            {
                url: 'chart.json',
                data:
                {},
                dataType: 'json',
                success: function(data)
                {
                    var stringy = JSON.stringify(data);
                    var objects = $.parseJSON(stringy);
                    var categories = new Array();
                    var groupedObjects = new Array();
                    var i = 0;
                    _.each(objects, function(obj)
                    {
                        var existingObj;
                        if ($.inArray(obj.Date, categories) >= 0)
                        {
                            existingObj = _.find(objects, function(o)
                            {
                                return o.Date === obj.Date;
                            });
                            existingObj["Homeruns"] += obj["Homeruns"];
                        }
                        else
                        {
                            groupedObjects[i] = obj;
                            categories[i] = obj.Date;
                            i++;
                        }
                    });
                    groupedObjects = _.sortBy(groupedObjects, function(obj)
                    {
                        return obj["Homeruns"];
                    }).reverse();
                    // print results for testing
                    _.each(groupedObjects, function(obj)
                    {
                        var output = '';
                        _.each(obj, function(val, key)
                        {
                            output += key + ': ' + val + '<br>';
                        });
                        output += '<br>';
                        $('#results').append(output);
                        console.log(output);
                    });
                }
            });
        }
函数图表页()
{
$.ajax(
{
url:'chart.json',
数据:
{},
数据类型:“json”,
成功:功能(数据)
{
var stringy=JSON.stringify(数据);
var objects=$.parseJSON(stringy);
var categories=新数组();
var groupedObjects=新数组();
var i=0;
_.每个(对象、功能(obj)
{
var-existingObj;
如果($.inArray(对象日期、类别)>=0)
{
existingObj=u2;.find(对象,函数(o)
{
返回o.日期===目标日期;
});
现有obj[“本垒打”]+=obj[“本垒打”];
}
其他的
{
groupedObjects[i]=obj;
类别[i]=目标日期;
i++;
}
});
groupedObjects=uu.sortBy(groupedObjects,函数(obj))
{
返回obj[“本垒打”];
}).reverse();
//打印测试结果
_.每个(分组对象、函数(obj)
{
var输出=“”;
_.每个(obj,功能(val,键)
{
输出+=key+':'+val+'
'; }); 输出+='
'; $(“#结果”)。追加(输出); 控制台日志(输出); }); } }); }
本垒打加起来最有可能是因为你在添加字符串。无论如何,我会使用更简单的解决方案:

_.each(data, function (item) {
  // if Date doesn't exist, create empty placeholder:
  if (!tempHomeruns[item.Date]) {
    tempHomeruns[item.Date] = 0;
  }
  // sum Homeruns
  tempHomeruns[item.Date] += parseInt(item.Homeruns, 10);
});

// create Highcharts required format:
_.each(tempHomeruns, function(item, key) {
  homeruns.push({
    name: key,
    y: item
  });
});
和海图代码:

Highcharts.chart('container', {
  chart: {
    type: 'column'
  },
  xAxis: {
    type: 'category'
  },
  series: [{
    data: homeruns
  }]
});

这是一个现场演示:(和两个例子,点击率和全垒打:;)

holy cow。那容易多了。哇!非常感谢。