자바 스크립트 비교에 대해 혼란스러워합니다. 말하자면 :자바 스크립트 비교 표현
var array1 = [1,2,3];
var array2 = [1,2,3];
array1 == array2 ;
false // why false ?
array1 === array2;
false // also why false?
아무도 나에게 이것을 명확하게 설명 할 수 있습니까? 미리 감사드립니다.
자바 스크립트 비교에 대해 혼란스러워합니다. 말하자면 :자바 스크립트 비교 표현
var array1 = [1,2,3];
var array2 = [1,2,3];
array1 == array2 ;
false // why false ?
array1 === array2;
false // also why false?
아무도 나에게 이것을 명확하게 설명 할 수 있습니까? 미리 감사드립니다.
"객체, 배열 및 기능을 기준으로 비교 이다."
- 귀하의 경우 array1
에 O'Reilly's JavaScript: The Definitive Guide
는 array2
는 다른 배열에 대한 참조입니다.
두 개의 서로 다른 Array 인스턴스를 비교하기 때문에 false입니다. 실제로 인스턴스에 대한 참조 인 경우에만 true입니다.
var array1 = [1,2,3];
var array2 = array1;
array1 == array2 ; // true
각 내용을 비교하려면 각 항목을 개별적으로 비교해야합니다. 이것은 하나의 레벨보다 더 깊어 보이지 않지만, 이와 비슷한 것입니다.
var array1 = [1,2,3];
var array2 = [1,2,3];
function compareArrays(a1,a2) {
var len = a1.length;
if(len !== a2.length)
return false;
while(len--) {
if(a1[ len ] !== a2[ len ]) {
return false;
}
}
return true;
}
compareArrays(array1, array2); // true