JavaScript가 어떻게 작동하는지 이해하지 못한다고 생각합니다. 배열이 있다고 가정 해 봅시다. 배열은 arr1
이고, 그 안에 6 개의 int 인 [1,2,3,4,5,6]
이 있습니다. I는 새로운 배열 할 경우 자바 스크립트 배열 이상한가?
var arr2 = arr1
I가 변경
arr2
에 반영
arr1
을 변경하면 (
arr1
불변의 복사본을 유지하기위한 목적으로).
기본적으로 arr1
을 조작하고 있습니다. 테스트 목적으로 나는 arr1
의 변경되지 않은 복사본을 갖고 싶었 기 때문에 완료되면 console.log를 웹 페이지에 출력하고 차이점을 확인할 수 있습니다. 그러나 다시 arr1
을 변경하면 해당 변경 사항이 arr2
에 반영됩니다.
아무도 왜이 일이 일어나는 이유는 무엇인지 설명 할 수 있습니까? 이 문제가 발생하는 이유를 수정하는 것보다 더 관심이 있습니다.
한 가지 방법은 arr2
별도의 배열을하고, arr1
의 데이터
for(int i = 0; i < arr1.length; i++) arr2[i] = arr1[i]
하지만 배열이 거대한 있다면, 그 비싼 수 있습니다 그것을 채우기 위해 루프를 사용하는 것입니다. 어떤 도움을 주셔서 감사합니다.
로 할 수있는 배열을 복제합니다. –
관련 질문 : http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language – WildCrustacean