Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 创建不同的数据集数组_Javascript_Json - Fatal编程技术网

Javascript 创建不同的数据集数组

Javascript 创建不同的数据集数组,javascript,json,Javascript,Json,我正在尝试根据月份值创建不同的数据集。例如,对于6月份的一个数据集和7月份的另一个数据集。但在我的代码中,所有月份值都被合并并创建为一个数据集 谁能帮助我动态创建不同的数据集,这将非常有帮助。我已附加了我尝试使用数据对象的小提琴 不能对对象使用同一属性名两次。您的数据中有一个如下所示的对象: "data": [ { "value": "80522" }, { "value": "83743" } ] 将键

我正在尝试根据月份值创建不同的数据集。例如,对于6月份的一个数据集和7月份的另一个数据集。但在我的代码中,所有月份值都被合并并创建为一个数据集

谁能帮助我动态创建不同的数据集,这将非常有帮助。我已附加了我尝试使用数据对象的小提琴


不能对对象使用同一属性名两次。您的数据中有一个如下所示的对象:

"data": [
      {
        "value": "80522"
      },
      {
        "value": "83743"
      }
    ]
将键更改为唯一键:

"data": [
      {
        "value1": "80522"
      },
      {
        "value2": "83743"
      }
    ]
或者将其设置为数组:

"data": [ "80522", "83743" ]

您还需要为月份添加支票。 试试这个:

    var obj = [{
    date: "2017-06-01",
    reqC: "129963",
    month: "JUNE",
    resC: "80522"
  }, {
    date: "2017-06-05",
    reqC: "261162",
    month: "JUNE",
    resC: "83743"
  },{
    date: "2017-07-03",
    reqC: "438860",
    month: "JULY",
    resC: "166107"
  }]
  var maindataset = [];

  ["JUNE","JULY"].forEach((month)=>{
  var dataset = [];
     ["reqC", "resC"].forEach((series) => {
      dataset.push({
        seriesname: series,
        data: obj.reduce((filtered, el) => {
          if(el["month"] === month){
           filtered.push({value: el[series]});
           }
           return filtered;
        },[])
      })

    });
    maindataset.push({
      dataset: dataset
    });
  })

  alert(JSON.stringify(maindataset));
输出:

[{
    "dataset": [{
        "seriesname": "reqC",
        "data": [{
            "value": "129963"
        }, {
            "value": "261162"
        }]
    }, {
        "seriesname": "resC",
        "data": [{
            "value": "80522"
        }, {
            "value": "83743"
        }]
    }]
}, {
    "dataset": [{
        "seriesname": "reqC",
        "data": [{
            "value": "438860"
        }]
    }, {
        "seriesname": "resC",
        "data": [{
            "value": "166107"
        }]
    }]
}]

您可以使用嵌套的哈希表,并在稍后迭代所需部分的键

var数据=[{日期:“2017-06-01”,要求:“129963”,月份:“6月”,要求:“80522”},{日期:“2017-06-05”,要求:“261162”,月份:“6月”,要求:“83743”},{日期:“2017-07-03”,要求:“438860”,月份:“7月”,要求:“166107”},
结果={dataset:[]},
零件={reqC:'Req',resC:'Res'},
hash={{uu0:result.dataset};
data.forEach(函数(a){
var-temp=散列;
如果(!温度[一个月]){
临时[一个月]={{}:[]};
临时推送({dataset:temp[a.month].});
}
温度=温度[一个月];
对象。键(部件)。forEach(函数(k){
如果(!温度[k]){
temp[k]={{uu:[]};
临时推送({seriesname:parts[k],data:temp[k].});
}
temp[k].u.push({value:a[k]});
});
});
控制台日志(结果)

.as console wrapper{max height:100%!important;top:0;}
您可以根据月份创建组,然后输出所需的数据结构。检查代码段

var obj=[{
日期:“2017-06-01”,
要求:“129963”,
月份:“六月”,
回复:“80522”
}, {
日期:“2017-06-05”,
要求:“261162”,
月份:“六月”,
回复:“83743”
},{
日期:“2017-07-03”,
要求:“438860”,
月份:“7月”,
回复:“166107”
}];
var result={};
var组=对象减少(功能(acc、obj){
acc[目标月]=acc[目标月]| |[];
acc[目标月].推送(目标月);
返回acc;
}, {});
//控制台日志(组);
result.dataset=Object.keys(groups).map(function(key){
返回{
数据集:[{
“seriesname”:“Req”,
“数据”:组[键].map(函数(o){
返回{value:o.reqC};
})
}, {
“序列名称”:“Res”,
“数据”:组[键].map(函数(o){
返回{value:o.resC};
})
}]
};
});
控制台日志(结果)

。作为控制台包装{max height:100%!important;top:0;}
这是两个不同对象中的属性,这里应该没有问题
[{
    "dataset": [{
        "seriesname": "reqC",
        "data": [{
            "value": "129963"
        }, {
            "value": "261162"
        }]
    }, {
        "seriesname": "resC",
        "data": [{
            "value": "80522"
        }, {
            "value": "83743"
        }]
    }]
}, {
    "dataset": [{
        "seriesname": "reqC",
        "data": [{
            "value": "438860"
        }]
    }, {
        "seriesname": "resC",
        "data": [{
            "value": "166107"
        }]
    }]
}]