2 个对象中的 2 个值相等但在比较时仍计算为不相等

我有2个对象数组对象的结构完全一样,有一个键,一个时间戳,还有一些其他的东西


arr1 = [{key: 2, timestamp:2020-07-07T02:00:00.000Z},other stuff:....}...]

arr2 = [{key: 7, timestamp:2020-07-07T02:00:00.000Z},other stuff:....}...]

arr1 按小时跟踪事物,因此每个时间戳是每小时一次 arr2 每 15 分钟跟踪事物,因此其中的时间戳类似于2020-07-07T02:45:00.000Z


我试图做的是找到两个数组中的时间戳匹配我循环通过1个数组然后传入时间戳以在另一个数组中搜索它


问题是它没有找到匹配的值,即使我知道它在那里


arr1.map(function (e) {

        console.log(e.timestamp, arr2[3].timestamp, e.timestamp == arr2[3].timestamp )

      }); 

所以上面的代码遍历 arr1 中的所有时间戳值,然后控制台记录它们,加上我知道 arr1 中来自 arr2 的特定值,然后我在控制台记录一个比较


控制台日志打印的内容如下


2020-07-07T02:00:00.000Z 2020-07-07T02:00:00.000Z false

那false应该true不是吧???


注意:我试过了==,===但都产生了false


倚天杖
浏览 84回答 1
1回答

手掌心

你不能像那样比较时间戳,因为时间戳是对象。new Date('2020-07-07T02:00:00.000Z') == new Date('2020-07-07T02:00:00.000Z')// false让我们试试 (e.timestamp - arr2[3].timestamp) == 0)arr1.map(function (e) {    console.log(e.timestamp, arr2[3].timestamp, (e.timestamp - arr2[3].timestamp) == 0);}); 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript