Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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_Typescript - Fatal编程技术网

Javascript 基于日期合并/组合阵列数据,而不在角度上重复

Javascript 基于日期合并/组合阵列数据,而不在角度上重复,javascript,typescript,Javascript,Typescript,如何基于日期合并阵列数据而不重复 代码如下: [ { date: [ '2019-12-02 08:00:00', '2019-12-03 08:00:00' ], upload:["47.93", "47.46", "47.40", "47.29" ], download: ["43.90", "41.12", "46.80", "47.86", "47.69", "47.74" ], ping: ["3.607", "4.209", "4.052", "3.559", "3

如何基于日期合并阵列数据而不重复

代码如下:

[
 {
  date: [ '2019-12-02 08:00:00', '2019-12-03 08:00:00' ],
  upload:["47.93", "47.46", "47.40", "47.29" ],
  download: ["43.90", "41.12", "46.80", "47.86", "47.69", "47.74" ],
  ping: ["3.607", "4.209", "4.052", "3.559", "3.8"]
 }
],[
 {
  date: [ '2019-12-02 08:00:00', '2019-12-04 08:00:00' ],
  upload: [ "47.93", "47.46", "41.40", "52.30" ],
  download: [ "47.90", "47.12", "46.80", "47.86", "47.69", "47.74" ],
  ping: ["3.607", "4.209", "4.052", "1.559", "3.2" ]
 }
]
以下是预期输出:

[
{
date : [ '2019-12-04 08:00:00', '2019-12-02 08:00:00', '2019-12-03 08:00:00']
data: [
 0: {
  upload:["47.93", "47.46", "47.40", "47.29" ],
  download: ["43.90", "41.12", "46.80", "47.86", "47.69", "47.74" ],
  ping: ["3.607", "4.209", "4.052", "3.559", "3.8"]
 },
 1: {
  upload: [ "47.93", "47.46", "41.40", "52.30" ],
  download: [ "47.90", "47.12", "46.80", "47.86", "47.69", "47.74" ],
  ping: ["3.607", "4.209", "4.052", "1.559", "3.2" ]
}
 ]

然后,当它合并数据时,它将基于日期,并且在合并时不应重复日期。

我能想到的是,您可以迭代所有数据,然后执行一个内部循环,以检查数据的结果日期。日期并检查它是否存在,否则继续检查。在内部循环结束时,检查是否存在以更新现有数据,否则追加新数据

//初始数据数组
常数a=[{
日期:['2019-12-02 08:00:00','2019-12-03 08:00:00'],
上传:[“47.93”、“47.46”、“47.40”、“47.29”],
下载:[“43.90”、“41.12”、“46.80”、“47.86”、“47.69”、“47.74”],
平:[“3.607”、“4.209”、“4.052”、“3.559”、“3.8”]
}, {
日期:['2019-12-02 08:00:00','2019-12-04 08:00:00'],
上传:[“47.93”、“47.46”、“41.40”、“52.30”],
下载:[“47.90”、“47.12”、“46.80”、“47.86”、“47.69”、“47.74”],
平:[“3.607”、“4.209”、“4.052”、“1.559”、“3.2”]
}];
//迭代初始数据
const result=a.reduce((附件,项目)=>{
让存在=虚假;
设curr_idx=null;
//重复日期
用于(项目的施工日期。日期){
//检查当前结果日期是否包含当前日期数据
对于(acc.entries()的常量[idx,obj]){
exists=obj.date.indexOf(日期)>=0;
如果(存在){
电流idx=idx;
打破
}
}
如果(存在){
打破
}
}
如果(存在){
acc[curr\u idx].date=Array.from(新集合(acc[curr\u idx].date.concat(item.date)))
acc[curr_idx].data.push({
上传:item.upload,
下载:item.download,
ping:item.ping
})
}否则{
加速推({
日期:item.date,
数据:[{
上传:item.upload,
下载:item.download,
ping:item.ping
}]
})
}
返回acc;
}, []);