我尝试按设定日期过滤数组
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)
});
但结果是一个空数组(result2
)。
下面是console.log(di)
的截图和数组的一个元素 -
答案 0 :(得分:4)
您无法使用==
在javascript中比较两个不同的对象
这将返回true
仅比较对象的相同实例。
要使代码正常工作,您可以尝试将日期转换为字符串。
var result2 = result.filter(function(number) {
return (number[2].toString() == di.toString())
});
或使用Date对象的.getTime()方法
var result2 = result.filter(function(number) {
return (number[2].getTime() == di.getTime())
});
答案 1 :(得分:-3)
filter
函数的第一个参数是一个数组元素,而不是数组本身,所以它应该是:
result.filter( function(el) { return (el == di); } );