Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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 DateFNS closestIndexTo返回NaN_Javascript_Vue.js_Lodash_Date Fns - Fatal编程技术网

Javascript DateFNS closestIndexTo返回NaN

Javascript DateFNS closestIndexTo返回NaN,javascript,vue.js,lodash,date-fns,Javascript,Vue.js,Lodash,Date Fns,我需要从DateFNS v.2.0.1的日期数组中获取最近的日期。我现在让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')]

我需要从DateFNS v.2.0.1的日期数组中获取最近的日期。我现在让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
},

所以基本上日期首先应该是字符串。下一个可能不正确的地方是您使用
[[uu.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))

这里是使用它的链接,可能不是你想要的,但它简单而成功。获取最接近的日期刚刚测试过,请为我返回NaN。console.log中的arrDates返回无效日期。有什么办法可以解决吗?你有没有把
放在你的arrDates实体周围?在初始化时,Stephen我该怎么添加它们?@Tom请看一下我提供的代码。数组的每个元素都像
“2019-09-01一样放置在
arrDates
初始化的位置“
。您还可以单击底部的链接,该链接将引导您使用此代码进入沙箱。