【问题标题】:How do I sort items into objects via timestamps如何通过时间戳将项目分类为对象
【发布时间】:2019-08-16 03:23:20
【问题描述】:

我有两个对象数组,我想按照作为每个对象一部分的时间戳的顺序将它们组合成一个数组。第一个数组是精确秒,第二个数组是一个小时的范围。我想将具有确切时间戳的数组中的“湿度”值输入到具有每小时范围的数组中,根据它们在时间上的适合位置。我如何在打字稿中做到这一点?两个数组/对象都按时间排序。

例如:

[{id: 1, timestampUtc: "2019-02-22T08:24:00Z", humidity: 74},
 {id: 2, timestampUtc: "2019-02-24T06:20:00Z", humidity: 39},
 {id: 3, timestampUtc: "2019-02-26T020:03:00Z", humidity: 35}]

和

[{id: 4, starttimestampUtc: "2019-02-22T08:00:00Z", endtimestampUtc: "2019-02-22T09:00:00Z", precipitation: .03},
 {id: 5, starttimestampUtc: "2019-02-24T06:00:00Z", endtimestampUtc: "2019-02-24T07:00:00Z", precipitation: .3},
 {id: 6, starttimestampUtc: "2019-02-26T020:00:00Z",endtimestampUtc: "2019-02-26T021:00:00Z", precipitation: .12}]

看起来像:

[{id: 4, starttimestampUtc: "2019-02-22T08:00:00Z", endtimestampUtc: "2019-02-22T09:00:00Z", precipitation: .03, humidity: 74},
 {id: 5, starttimestampUtc: "2019-02-24T06:00:00Z", endtimestampUtc: "2019-02-24T07:00:00Z", precipitation: .3, humidity: 39},
 {id: 6, starttimestampUtc: "2019-02-26T020:00:00Z", endtimestampUtc: "2019-02-26T021:00:00Z", precipitation: .12, , humidity: 35}]

【问题讨论】:

    标签: arrays typescript sorting timestamp


    【解决方案1】:

    我可以通过将 UTC 时间戳转换为日期对象来做到这一点。以下代码似乎对我有用,其中 a 和 b 是您的两个数组。我还注意到每个数组的最后一个元素的时间戳中多了一个 0。

    b.map((element) => {
    let entry = a.find((e) => {
        let d = new Date(e.timestampUtc)
        let start = new Date(element.starttimestampUtc)
        let end = new Date(element.endtimestampUtc)
        return (d >= start && d <= end)
    })
    if(entry !== undefined) {
        element.humidity = entry.humidity
    }
    return element
    
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多