【问题标题】:DateFNS closestIndexTo returns NaN日期 FNS 最接近索引返回 NaN
【发布时间】:2020-01-07 16:02:06
【问题描述】:

我需要使用 DateFNS v.2.0.1 closestIndexTo 从日期数组中获取最接近的日期。我目前正在返回 NaN。我在这里想念什么?

(val = 2019-09-01) 
(arrDates = 2019-09-01,2019-09-03,2019-09-03,2019-09-04,2019-09-05,2019-09-05,2019-09-23,2019-10-01,2019-11-18)

getClosestToDate(val,arr) {
  var arrDates = [_.map(arr, 'date')]
  var closestDate = closestIndexTo(parseISO(val), arrDates)
  return closestDate
},

【问题讨论】:

标签: javascript vue.js lodash date-fns


【解决方案1】:

所以基本上日期应该首先是字符串。下一个可能不正确的地方是您使用 [_.map(arr, 'date')] 的地方,它实际上将 map 的结果放入数组中,使其成为双数组。此外,为了将 arr 解析为 Date 对象,您需要将 arr 值映射到 parseISO 函数。所以下面的代码应该可以工作

var closestIndexTo = require('date-fns/closestIndexTo')
var parseISO = require('date-fns/parseISO')
var _ = require('lodash')

val = "2019-10-04"
arrDates = ["2019-09-01","2019-09-03","2019-09-03","2019-09-04","2019-09-05","2019-09-05","2019-09-23","2019-10-01","2019-11-18"]

function getClosestToDate(val, arr) {
  var arrDates = _.map(arr, (a) => parseISO(a))
  var closestDate = closestIndexTo(parseISO(val), arrDates)
  return closestDate
}

console.log("result", getClosestToDate(val, arrDates))

这里是repl的链接

【讨论】:

  • 刚刚测试过,给我返回NaN。 console.log 中的 arrDates 返回无效日期。任何想法如何解决它?
  • 您是否在您的 arrDates 条目周围放置了 "?在初始化步骤
  • 如何添加它们?
  • @Tom 请查看我提供的代码。 arrDates 已初始化,其中数组的每个元素都像 "2019-09-01" 一样放置。您也可以单击底部的链接,该链接将引导您使用此代码进入沙箱。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-17
  • 2012-06-12
  • 2021-10-28
  • 2021-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多