【发布时间】:2021-05-01 17:35:06
【问题描述】:
我试图在包含与当前日期匹配的时间戳的数组中查找对象的索引。今天是 27 号,所以根据我的数据集,它应该返回第一个索引。我尝试了两种解决方案,但由于不同的原因,这两种解决方案都不起作用。我愿意使用任何一种方法的解决方案。
我尝试过使用完全匹配的字符串。
const index = _.findIndex(data, function(day) {
return day.timestampUtc === moment().startOf('day').toISOString() })
上述方法不起作用,因为它试图将2021-01-27T00:00:00Z 匹配到永远不会捕获的2021-01-27T06:00:00.000Z,因为它会返回未定义。
我也试过
const index = _.findIndex(data, function(day) {
return moment(day.timestampUtc).day() === moment().day() }) //should return 1, but returns 2
这个不起作用,因为使用 moment(day.timestampUtc) 会因为时区偏移而将其评估到前一天,所以我返回的索引会太高,因为它会提前一天进行评估。
数据
[{
timestampUtc: "2021-01-26T00:00:00Z"
weatherCodeType: "FLURRIES"
},
{
timestampUtc: "2021-01-27T00:00:00Z"
weatherCodeType: "RAIN"
}, //I want this one
{
timestampUtc: "2021-01-28T00:00:00Z"
weatherCodeType: "SNOW"
},
]
【问题讨论】:
标签: javascript typescript momentjs lodash