过滤数组(javascript)

过滤数组(javascript),javascript,arrays,Javascript,Arrays,我有一个数组,每个数组中都有日期和一个随机值 我有一个日期选择器,一旦我点击了某个日期,我就保留该日期的值 以身作则 var array = [ ["02-01-2017 09:20:21", 116], ["02-13-2017 19:07:57", 133], ["01-28-2017 10:27:15", 29], ["02-14-2017 06:56:22", 137], ["02-22-2017 09:23:43", 208], ["01-15-

我有一个数组,每个数组中都有日期和一个随机值

我有一个日期选择器,一旦我点击了某个日期,我就保留该日期的值

以身作则

var array = [ ["02-01-2017 09:20:21", 116],
    ["02-13-2017 19:07:57", 133],
    ["01-28-2017 10:27:15", 29],
    ["02-14-2017 06:56:22", 137],
    ["02-22-2017 09:23:43", 208],
    ["01-15-2017 23:33:40", 120],
    ["01-16-2017 05:21:05", 146],
    ["01-02-2017 01:49:32", 209],
    ["02-14-2017 06:19:54", 172],
    ["01-02-2017 02:12:16", 13],
    ["02-25-2017 11:39:00", 213],
    ["01-01-2017 15:27:43", 39],
    ["01-10-2017 17:58:27", 96],
    ["02-10-2017 18:17:42", 99],
    ["01-04-2017 21:28:33", 40],
    ["02-08-2017 18:09:55", 92],
    ["02-08-2017 10:24:47", 12],
    ["02-03-2017 19:49:59", 15],
    ["01-07-2017 16:52:17", 196]
]
因此,一旦我从日期选择器(如2017年8月2日)中单击一个日期,我想过滤掉我的大数组,以便在最后,我的数组只包含包含所选日期的数组

var newArray = [
        ["02-08-2017 18:09:55", 92],
        ["02-08-2017 10:24:47", 12]
]

那我该怎么做呢?不使用任何jquery

您需要Array.prototype.filter,它接受一个函数并将其应用于数组的每个元素。如果函数返回true,则传递给它的元素将作为其结果返回

例如:

let result = sourceArray.filter((elt) => elt[0].match(/^02-08-2017$/))

您可以使用filter和transform-the string in Date()对象,并使用toDateString()比较它们,忽略小时数,只考虑日期

var数组=[[02-01-2017 09:20:21],116],“02-13-2017 19:07:57”,133],“01-28-2017 10:27:15”,29],“02-14-2017 06:56:22”,137],“02-22-2017 09:23:43”,208],“01-15-2017 23:33:40”,120],“01-16-2017 05:21:05”,146],“01-02-2017 01:49:32”,209],“02-14-2017 06:19:54”,172],“01-02-02-2017:12:16”,13:21],[2017:21],[2017],["01-01-2017 15:27:43", 39], ["01-10-2017 17:58:27", 96], ["02-10-2017 18:17:42", 99], ["01-04-2017 21:28:33", 40], ["02-08-2017 18:09:55", 92], ["02-08-2017 10:24:47", 12], ["02-03-2017 19:49:59", 15], ["01-07-2017 16:52:17", 196] ]
const selectedDate=“02-08-2017”;
const transformedDate=新日期(selectedDate).toDateString()
const result=array.filter(el=>newdate(el[0])。toDateString()==transformedDate)

console.log(result)
到目前为止您尝试了什么?过滤数组在JavaScript中是一项任务。“数组是否在”在什么中?您忘记了什么吗?这非常有效,遗憾的是我的错误很愚蠢,我被允许的是allDays=array.filter(picked=>picked.match(day)),因此括号和没有针对索引让我感到困惑,非常感谢