Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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_Json - Fatal编程技术网

Javascript 将从JSON到数组的每个月的所有值相加

Javascript 将从JSON到数组的每个月的所有值相加,javascript,json,Javascript,Json,我正在尝试进行数据可视化,我需要知道如何对每个月的所有值求和,有JSON数据: var data = [ { "created_at": "2016-01-06", "commission": "238.00" }, { "created_at": "2016-01-12", "commission": "538.00" }, { "created_at": "2016-02-02", "commission": "12.0

我正在尝试进行数据可视化,我需要知道如何对每个月的所有值求和,有JSON数据:

var data = [
  {
    "created_at": "2016-01-06",
    "commission": "238.00"
  },

  {
    "created_at": "2016-01-12",
    "commission": "538.00"
  },

  {
    "created_at": "2016-02-02",
    "commission": "12.00"
  },

  {
    "created_at": "2016-03-06",
    "commission": "113.00"
  },

  {
    "created_at": "2016-03-18",
    "commission": "212.00"
  }
];
以下是每月佣金所有值总和的算法:

var months = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

var date;
for (var i = 0; i < data.length; i++) {
  date = new Date(data[i].created_at);
  if (date.getFullYear() == 2016) {
    months = months[date.getMonth()] += +data[i].commission;
  }
}
//excepted result would be [776, 12, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0]
alert(months);
var月数=[0,0,0,0,0,0,0,0,0,0,0,0];
风险值日期;
对于(变量i=0;i
我搞不懂这个逻辑,它返回了委员会或NaN的第一个索引。例外的结果是每个月的附加值如下:[776,12,325,0,0,0,0,0,0,0,0,0,0]


有一个JSfiddle,你有一个输入错误。变更
months=months[date.getMonth()]+=+数据[i].佣金
月[date.getMonth()]+=+数据[i]。佣金

var数据=[
{
“创建时间”:“2016-01-06”,
“佣金”:“238.00”
},
{
“创建时间”:“2016-01-12”,
“佣金”:“538.00”
},
{
“创建时间”:“2016-02-02”,
“佣金”:“12.00”
},
{
“创建时间”:“2016-03-06”,
“佣金”:“113.00”
},
{
“创建时间”:“2016-03-18”,
“佣金”:“212.00”
}
];
风险值月份=[0,0,0,0,0,0,0,0,0,0,0,0,0];
风险值日期;
对于(变量i=0;i
months[date.getMonth()]
为什么要用
months=
预先指定
months[date.getmonths()]
赋值?@最后面的部分是我确保更新这个变量。所以它是混乱的,那么这个答案是清楚的。排版确实意味着你不回答,但投票以“简单的排版错误”的理由结束这个问题。这些问题对任何人都没有帮助,你应该改用调试器。@nicael这是我的问题,不关你的事,thanks@nicael我认为这个输入错误是导致逻辑错误的原因,调试器不会为这些事情产生任何错误。@nicael这只是你的意见,这是一个问题,它的算法和答案对任何人都有帮助,不需要重复这个问题。这是我的错,连调试器都帮不上忙。这个答案很有用。它仍然只是一个打字错误。OP将使用
+
而不是
+=
var data = [

  {
    "created_at": "2016-01-06",
    "commission": "238.00"
  },

  {
    "created_at": "2016-01-12",
    "commission": "538.00"
  },

  {
    "created_at": "2016-02-02",
    "commission": "12.00"
  },

  {
    "created_at": "2016-03-06",
    "commission": "113.00"
  },

  {
    "created_at": "2016-03-18",
    "commission": "212.00"
  }


];


var months = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

var date;
for (var i = 0; i < data.length; i++) {
  date = new Date(data[i].created_at);
  if (date.getFullYear() == 2016) {
    months[date.getMonth()] = parseFloat(months[date.getMonth()]) + parseFloat( data[i].commission);
  }
}

//excepted result would be [776, 12, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0]
alert(months);