Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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,代码如下: 列表.组件.ts 我想要的是,如果data1有一个数组(16),那么data2有一个数组(20),它们都有相同的日期,但是data2有不应该显示的最旧数据 输出应如下所示: [ { dateStart: "2020-02-14 00:00:01", name: "Server1" }, { dateStart: "2020-02-13 14:00:01", name: "Server1" }, { dateStart: "2

代码如下:

列表.组件.ts

我想要的是,如果data1有一个数组(16),那么data2有一个数组(20),它们都有相同的日期,但是data2有不应该显示的最旧数据

输出应如下所示:

[
  {
    dateStart: "2020-02-14 00:00:01",
    name: "Server1"
  },
  {
    dateStart: "2020-02-13 14:00:01",
    name: "Server1"
  },
  {
    dateStart: "2020-02-13 13:00:01",
    name: "Server1"
  },
  {
    dateStart: "2020-02-13 12:00:01",
    name: "Server1"
  },
  {
    dateStart: "2020-02-13 11:00:01",
    name: "Server1"
  }
],
[
  {
    dateStart: "2020-02-13 14:00:01",
    name: 'Server2'
  },
  {
    dateStart: "2020-02-13 13:00:01",
    name: 'Server2'
  },
  {
    dateStart: "2020-02-13 12:00:01",
    name: 'Server2'
  },
  {
    dateStart: "2020-02-13 11:00:01",
    name: 'Server2'
  }
]
代码如下:

如果有一个新的数组。这是数据3,它有一个数组(25),然后它会相互比较。与data1、data2和data3一样,如果日期不匹配,则不会显示

例如:

data1 = [{
        dateStart: "2020-02-13 14:00:01",
        name: 'Server1'
      },
      {
        dateStart: "2020-02-13 13:00:01",
        name: 'Server1'
      },
      {
        dateStart: "2020-02-13 12:00:01",
        name: 'Server1'
      }]
    data2 = [ {
        dateStart: "2020-02-13 14:00:01",
        name: 'Server2'
      },
      {
        dateStart: "2020-02-13 13:00:01",
        name: 'Server2'
      },
      {
        dateStart: "2020-02-13 12:00:01",
        name: 'Server2'
      },
      {
        dateStart: "2020-02-13 11:00:01",
        name: 'Server2'
      },
      {
        dateStart: "2020-02-12 11:00:01",
        name: 'Server2'
      }],
    data3 = [ {
        dateStart: "2020-02-13 14:00:01",
        name: 'Server3'
      },
      {
        dateStart: "2020-02-13 13:12:01",
        name: 'Server3'
      },
      {
        dateStart: "2020-02-13 12:00:01",
        name: 'Server3'
      },
      {
        dateStart: "2020-02-13 11:00:01",
        name: 'Server3'
      },
      {
        dateStart: "2020-02-12 10:00:01",
        name: 'Server3'
      }]
输出应该是

[{
            dateStart: "2020-02-13 14:00:01",
            name: 'Server1'
          },
          {
            dateStart: "2020-02-13 13:00:01",
            name: 'Server1'
          },
          {
            dateStart: "2020-02-13 12:00:01",
            name: 'Server1'
          }],
 [ {
            dateStart: "2020-02-13 14:00:01",
            name: 'Server2'
          },
          {
            dateStart: "2020-02-13 13:00:01",
            name: 'Server2'
          },
          {
            dateStart: "2020-02-13 12:00:01",
            name: 'Server2'
          }],
[ {
            dateStart: "2020-02-13 14:00:01",
            name: 'Server3'
          },
          {
            dateStart: "2020-02-13 13:12:01",
            name: 'Server3'
          },
          {
            dateStart: "2020-02-13 12:00:01",
            name: 'Server3'
          },
          {
            dateStart: "2020-02-13 11:00:01",
            name: 'Server3'
          },
          {
            dateStart: "2020-02-12 10:00:01",
            name: 'Server3'
          }]

如果您想像这样保存数据,只需使用spread运算符
(…)
,如下所示:

const data1 = [
      {
        dateStart: "2020-02-14 00:00:01",
        name: 'Server1'
      },
      {
        dateStart: "2020-02-13 14:00:01",
        name: 'Server1'
      },
      {
        dateStart: "2020-02-13 13:00:01",
        name: 'Server1'
      },
      {
        dateStart: "2020-02-13 12:00:01",
        name: 'Server1'
      },
      {
        dateStart: "2020-02-13 11:00:01",
        name: 'Server1'
      }
    ];

    const data2 = [
      {
        dateStart: "2020-02-13 14:00:01",
        name: 'Server2'
      },
      {
        dateStart: "2020-02-13 13:00:01",
        name: 'Server2'
      },
      {
        dateStart: "2020-02-13 12:00:01",
        name: 'Server2'
      },
      {
        dateStart: "2020-02-13 11:00:01",
        name: 'Server2'
      },
      {
        dateStart: "2020-02-12 11:00:01",
        name: 'Server2'
      },
      {
        dateStart: "2020-02-11 11:00:01",
        name: 'Server2'
      },
    ]

let final = [[...data1] , [...data2] , ... more arrays];

输出为:

[ [ { dateStart: '2020-02-14 00:00:01', name: 'Server1' },
    { dateStart: '2020-02-13 14:00:01', name: 'Server1' },
    { dateStart: '2020-02-13 13:00:01', name: 'Server1' },
    { dateStart: '2020-02-13 12:00:01', name: 'Server1' },
    { dateStart: '2020-02-13 11:00:01', name: 'Server1' } ],
  [ { dateStart: '2020-02-13 14:00:01', name: 'Server2' },
    { dateStart: '2020-02-13 13:00:01', name: 'Server2' },
    { dateStart: '2020-02-13 12:00:01', name: 'Server2' },
    { dateStart: '2020-02-13 11:00:01', name: 'Server2' },
    { dateStart: '2020-02-12 11:00:01', name: 'Server2' },
    { dateStart: '2020-02-11 11:00:01', name: 'Server2' } ] ]


我将以这种方式提出解决方案-

  • 合并数组之前,如果未排序,请对其进行排序(降序)。对其使用
    array.sort()
  • 要进行合并,请将第一个数组
    data1
    放入新数组,并将此数组的最后一条记录保存在temp变量中<代码>让temp=data1[data1.length-1].dateStart。因为您不需要来自早于此日期的其他阵列的数据
  • 迭代剩余数组
    data2、data3、…
    ,如果
    dateStart
    不早于
    temp
    ,则将数据推送到新数组中
我不太清楚你在问什么,你能举一个小数组的例子吗(例如大小为2和3)?非常令人困惑:(@kaushik抱歉,先生。示例先生,数据1(3)[{…},{…},{…},{…}],然后是数据2(5)[{…},{…},{…},{…},{…},{…}]然后,当data1或data2具有相同的年-月-日时,它将显示。或者当有一个新数组,即data3(3)[{…},{…},{…},{…}]时,它将比较相似的年-月-日,如果有相似的年-月-日,它将显示按dateStart
data1.sort排序的data1.sort((a,b)=>new Date(a.dateStart).getTime()-new Date(b.dateStart).getTime())
[ [ { dateStart: '2020-02-14 00:00:01', name: 'Server1' },
    { dateStart: '2020-02-13 14:00:01', name: 'Server1' },
    { dateStart: '2020-02-13 13:00:01', name: 'Server1' },
    { dateStart: '2020-02-13 12:00:01', name: 'Server1' },
    { dateStart: '2020-02-13 11:00:01', name: 'Server1' } ],
  [ { dateStart: '2020-02-13 14:00:01', name: 'Server2' },
    { dateStart: '2020-02-13 13:00:01', name: 'Server2' },
    { dateStart: '2020-02-13 12:00:01', name: 'Server2' },
    { dateStart: '2020-02-13 11:00:01', name: 'Server2' },
    { dateStart: '2020-02-12 11:00:01', name: 'Server2' },
    { dateStart: '2020-02-11 11:00:01', name: 'Server2' } ] ]