为什么这两个日期在 javascript 中不相等?
Why these two dates are not equal in javascript?
我正在比较 objA 和 objB 中的两个日期,它们不相等,如下面的控制台输出所示。
不明白为什么..
objA[keysA[i]]
Sun Sep 25 2016 00:00:00 GMT+0900 (KST)
objB[keysA[i]]
Sun Sep 25 2016 00:00:00 GMT+0900 (KST)
typeof objA[keysA[i]]
"object"
typeof objB[keysA[i]]
"object"
objA[keysA[i]] !== objB[keysA[i]]
true
您需要将日期字符串化并以这种方式进行比较。例如:
var date1 = new Date();
var date2 = new Date();
console.log (date1==date2); // This will print false
但是如果我们将日期字符串化并以这种方式比较它们,这将成为现实,如下所示:
console.log (date1.toString() === date2.toString())
在 JavaScript 中,您通过引用比较对象。
let a = {};
let b = {};
let c = a;
a == b //false
a == c //true
比较对象的一种简单方法是将它们转换为字符串并比较字符串。您可以使用 Date.prototype.toString
来比较 Date
个像这样的对象
objA[keysA[i]].toString() !== objB[keysA[i]]].toString() //false
我正在比较 objA 和 objB 中的两个日期,它们不相等,如下面的控制台输出所示。
不明白为什么..
objA[keysA[i]]
Sun Sep 25 2016 00:00:00 GMT+0900 (KST)
objB[keysA[i]]
Sun Sep 25 2016 00:00:00 GMT+0900 (KST)
typeof objA[keysA[i]]
"object"
typeof objB[keysA[i]]
"object"
objA[keysA[i]] !== objB[keysA[i]]
true
您需要将日期字符串化并以这种方式进行比较。例如:
var date1 = new Date();
var date2 = new Date();
console.log (date1==date2); // This will print false
但是如果我们将日期字符串化并以这种方式比较它们,这将成为现实,如下所示:
console.log (date1.toString() === date2.toString())
在 JavaScript 中,您通过引用比较对象。
let a = {};
let b = {};
let c = a;
a == b //false
a == c //true
比较对象的一种简单方法是将它们转换为字符串并比较字符串。您可以使用 Date.prototype.toString
来比较 Date
个像这样的对象
objA[keysA[i]].toString() !== objB[keysA[i]]].toString() //false