2016-10-26 4 views
0

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 
+0

같은 Date 객체를 비교하는 Date.prototype.toString을 사용할 수 있습니다 [keysA를 [내가] + 0! == objB [keysA [I ]] + 0' 날짜를 숫자로 강제 변환합니다. –

답변

1

는 참조로 객체를 비교합니다.

let a = {}; 
let b = {}; 
let c = a; 

a == b //false 
a == c //true 

객체를 비교하는 간단한 방법은 문자열로 변환하고 문자열을 비교하는 것이다. 당신은 ...`objA하려고 날짜는 그런 그들을 비교할 수있는 객체이기 때문에이

objA[keysA[i]].toString() !== objB[keysA[i]]].toString() //false 
1

그들을 그런 식으로 비교합니다. 예를 들면 :

var date1 = new Date(); 
var date2 = new Date(); 

console.log (date1==date2); // This will print false 

그러나 우리는 날짜를 캐릭터 라인 화하고이 그렇게 같은 사실이 될 것이다 그런 식으로 비교한다면 : 자바 스크립트에서

console.log (date1.toString() === date2.toString()) 
+1

date1 + 0 === date2 + 0 - 밀리 초 차이를 나타냅니다. –

+0

예. @ JaromandaX - 만약 당신이'date1 + 0 === date2 + 0'을하면된다. 당신이 말했듯이 그것은 사실입니다. – James111

관련 문제