过滤功能不适用于日期(javascript)

Его*_*нко 3 javascript arrays filter

我尝试按设定日期过滤数组

var di = new Date(this.state.date.slice(0, 4),
                  this.state.date.slice(5, 7),
                  this.state.date.slice(8, 10),
                  '10',
                  '00');
var result2 = result.filter(function(number) {
  return (number[2] == di)
});
Run Code Online (Sandbox Code Playgroud)

但结果是一个空数组 ( result2)。

console.log(di)下面是数组的一个元素的屏幕截图-

在此输入图像描述

Seb*_*iak 6

您不能使用 JavaScript 来比较两个不同的对象,== 这将true仅返回比较对象的同一实例。

为了使您的代码正常工作,您可以尝试将日期转换为字符串。

var result2 = result.filter(function(number) {
  return (number[2].toString() == di.toString())
});
Run Code Online (Sandbox Code Playgroud)

或者使用 Date 对象的 .getTime() 方法

var result2 = result.filter(function(number) {
  return (number[2].getTime() == di.getTime())
});
Run Code Online (Sandbox Code Playgroud)