[英]Unexpected result when comparing two dates
我在此if块中比较两个日期:
if(columnsData[i][0] == selectDate){
todayGeneralCount = todayGeneralCount +1;
for (var j=0; j<countingByTypeArrays.length; j++) {
if(countingByTypeArrays[j][0] == columnsData[i][0]){
countingByTypeArrays[j][1] == countingByTypeArrays[j][2] +1;
}
else {
countingByTypeArrays.push([columnsData[i][0], 1]);
}
}
}
条件始终返回False
。 但是当我查看日志时,我得到了:
这似乎是一个意外的结果:两个值都是Date
类型,并且具有相同的值。 是什么产生这种行为? 如何获得True
结果?
一个对象永远不会与另一个对象( 证明 )相同,即使它们包含相同的值,因此您必须比较其他对象,最简单的方法是使用getTime()
。
当您使用其他一些运算符时,例如<
, >
, <=
等。比较确实可以在对象上调用toValue()
,但是在使用==
时不可以,因为它们只是比较对象,所以它们是不相同的。
if(columnsData[i][0].getTime() == selectDate.getTime()){ ...
还有,在你正在做的情况下
if(countingByTypeArrays[j][0] == columnsData[i][0]){
countingByTypeArrays[j][1] == countingByTypeArrays[j][2] +1;
}
您知道您没有在设置任何正确的东西,因为那只是一个等号,并且您在毫无明显理由地比较这些值?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.