Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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输出组合数据_Javascript_Jquery_Json_Ajax - Fatal编程技术网

Javascript 组合位置并从JSON输出组合数据

Javascript 组合位置并从JSON输出组合数据,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,这个想法是把所有的“位置”合并在一起,给出一个数字供我的图表阅读。假设你有5个“地点”在纽约,有不同的“日期”。我想将所有5个合并在一起,输出5个,以及.json中合并的“punchs”。现在,我有它抓取位置,并合并类似的拳。但我想得到纽约的实例总数,并输出这个数字 chart.json [ { "Date":"2003", "Punches":"0", "Locations":"New York" }, {

这个想法是把所有的“位置”合并在一起,给出一个数字供我的图表阅读。假设你有5个“地点”在纽约,有不同的“日期”。我想将所有5个合并在一起,输出5个,以及.json中合并的“punchs”。现在,我有它抓取位置,并合并类似的拳。但我想得到纽约的实例总数,并输出这个数字

chart.json

    [  
   {  
      "Date":"2003",
      "Punches":"0",
      "Locations":"New York"
   },
   {  
      "Date":"2003",
      "Punches":"1",
      "Locations":"New York"
   },
   {  
      "Date":"2004",
      "Punches":"0",
      "Locations":"Chicago"
   },
   {  
      "Date":"2004",
      "Punches":"1",
      "Locations":"Chicago"
   },
   {  
      "Date":"2004",
      "Punches":"1",
      "Locations":"Ohio"
   },
   {  
      "Date":"2004",
      "Punches":"1",
      "Locations":"Ohio"
   },
   {  
      "Date":"2007",
      "Punches":"0",
      "Locations":"Ohio"
   },
   {  
      "Date":"2007",
      "Punches":"0",
      "Locations":"Florida"
   },
   {  
      "Date":"2009",
      "Punches":"1",
      "Locations":"Florida"
   },
   {  
      "Date":"2007",
      "Punches":"0",
      "Locations":"New York"
   },
   {  
      "Date":"2009",
      "Punches":"0",
      "Locations":"New York"
   },
   {  
      "Date":"2009",
      "Punches":"0",
      "Locations":"Chicago"
   },
   {  
      "Date":"2010",
      "Punches":"0",
      "Locations":"New York"
   },
   {  
      "Date":"2010",
      "Punches":"0",
      "Locations":"Florida"
   }
]
JS

function LocationMerge()
        {
            $.ajax(
            {
                url: 'data.json',
                data:{},
                dataType: 'json',
                success: function(data)
                {
                    var string = JSON.stringify(data);
                    var objects = $.parseJSON(string);
                    var categories = new Array();
                    var mergedPieces = new Array();
                    var i = 0;
                    _.each(objects, function(obj)
                    {
                        var existingObj;
                        if ($.inArray(obj.Locations, categories) >= 0)
                        {
                            existingObj = _.find(objects, function(o)
                            {
                                return o.Locations=== obj.Locations;
                            });
                            existingObj["Punches"] += obj["Punches"];
                        }
                        else
                        {
                            mergedPieces[i] = obj;
                            categories[i] = obj.Locations;
                            i++;
                        }
                    });
                    mergedPieces = _.sortBy(mergedPieces, function(obj)
                    {
                        return obj["Punches"];
                    }).reverse();
                    _.each(mergedPieces, function(obj)
                    {
                        var output = '';
                        _.each(obj, function(val, key)
                        {
                            output += key + ': ' + val + '<br>';
                        });
                        output += '<br>';
                        console.log(output);
                    });
                }
            });
        }
函数位置合并()
{
$.ajax(
{
url:'data.json',
数据:{},
数据类型:“json”,
成功:功能(数据)
{
var string=JSON.stringify(数据);
var objects=$.parseJSON(字符串);
var categories=新数组();
var mergedPieces=新数组();
var i=0;
_.每个(对象、功能(obj)
{
var-existingObj;
如果($.inArray(对象位置、类别)>=0)
{
existingObj=u2;.find(对象,函数(o)
{
返回o.Locations===对象位置;
});
现有obj[“冲孔”]+=obj[“冲孔”];
}
其他的
{
合并件[i]=obj;
类别[i]=目标位置;
i++;
}
});
mergedPieces=u.sortBy(mergedPieces,函数(obj))
{
返回对象[“冲压”];
}).reverse();
_.每个(合并部件、功能(obj)
{
var输出=“”;
_.每个(obj,功能(val,键)
{
输出+=key+':'+val+'
'; }); 输出+='
'; 控制台日志(输出); }); } }); }
在成功功能中尝试此功能。查看演示(控制台输出)以了解结果

var data = [{"Date": "2003", "Punches": "0", "Locations": "New York"}, {"Date": "2003", "Punches": "1", "Locations": "New York"}, {"Date": "2004", "Punches": "0", "Locations": "Chicago"}, {"Date": "2004", "Punches": "1", "Locations": "Chicago"}, {"Date": "2004", "Punches": "1", "Locations": "Ohio"}, {"Date": "2004", "Punches": "1", "Locations": "Ohio"}, {"Date": "2007", "Punches": "0", "Locations": "Ohio"}, {"Date": "2007", "Punches": "0", "Locations": "Florida"}, {"Date": "2009", "Punches": "1", "Locations": "Florida"}, {"Date": "2007", "Punches": "0", "Locations": "New York"}, {"Date": "2009", "Punches": "0", "Locations": "New York"}, {"Date": "2009", "Punches": "0", "Locations": "Chicago"}, {"Date": "2010", "Punches": "0", "Locations": "New York"}, {"Date": "2010", "Punches": "0", "Locations": "Florida"}];

function LocationMerge()
{
    var newObj = new Object();
    _.each(data, function(obj){
       if(newObj[obj.Locations] === undefined)
           newObj[obj.Locations] = {"Location":obj.Locations,"Punches":parseInt(obj.Punches),"items":1};
       else{
           newObj[obj.Locations]["Punches"]+=parseInt(obj.Punches);
           newObj[obj.Locations]["items"]++;
       }
    });
    console.log(newObj);
}

LocationMerge();

var数据集=[
{  
“日期”:“2003年”,
“穿孔”:“0”,
“地点”:“纽约”
},
{  
“日期”:“2003年”,
“打孔”:“1”,
“地点”:“纽约”
},
{  
“日期”:“2004年”,
“穿孔”:“0”,
“地点”:“芝加哥”
},
{  
“日期”:“2004年”,
“打孔”:“1”,
“地点”:“芝加哥”
},
{  
“日期”:“2004年”,
“打孔”:“1”,
“地点”:“俄亥俄州”
},
{  
“日期”:“2004年”,
“打孔”:“1”,
“地点”:“俄亥俄州”
},
{  
“日期”:“2007年”,
“穿孔”:“0”,
“地点”:“俄亥俄州”
},
{  
“日期”:“2007年”,
“穿孔”:“0”,
“地点”:“佛罗里达”
},
{  
“日期”:“2009年”,
“打孔”:“1”,
“地点”:“佛罗里达”
},
{  
“日期”:“2007年”,
“穿孔”:“0”,
“地点”:“纽约”
},
{  
“日期”:“2009年”,
“穿孔”:“0”,
“地点”:“纽约”
},
{  
“日期”:“2009年”,
“穿孔”:“0”,
“地点”:“芝加哥”
},
{  
“日期”:“2010年”,
“穿孔”:“0”,
“地点”:“纽约”
},
{  
“日期”:“2010年”,
“穿孔”:“0”,
“地点”:“佛罗里达”
}
];
map={};
dataset.forEach(函数(数据){if(map[data.Locations]){map[data.Locations]=map[data.Locations]+1}否则{map[data.Locations]=1});
snippet.log(映射)

@askmeaquestion1234:如果该解决方案对您有效,请关闭该解决方案1,以获得单行解决方案:)
Code below