> 웹 프론트엔드 > JS 튜토리얼 > JavaScript array_javascript 기술의 깊은 복사와 얕은 복사의 두 가지 방법

JavaScript array_javascript 기술의 깊은 복사와 얕은 복사의 두 가지 방법

WBOY
풀어 주다: 2016-05-16 16:52:08
원래의
1926명이 탐색했습니다.

예:

코드 복사 코드는 다음과 같습니다.
var arr = ["One ", "Two","Three"];

var arrto = arr;
arrto[1] = "test";
document.writeln("배열의 원래 값: " arr "< br />");//내보내기: 배열의 원래 값: One,test,Three
document.writeln("배열의 새 값: " arrto "

위와 같은 직접 할당 방식은 얕은 복사일 때가 많습니다. 사실 우리가 원하는 것은 arr의 값이 그대로 유지되는 것입니다.

방법 1: js 슬라이스 함수

코드 복사 코드는 다음과 같습니다.

배열의 경우 객체의 슬라이스 함수인
은 배열의 세그먼트를 반환합니다. (아직 배열임)
arrayObj.slice(start, [end])
매개변수
arrayObj
필수입니다. 배열 개체입니다.
시작
필수입니다. arrayObj에 지정된 부분의 시작 요소는 0부터 시작하는 인덱스입니다.
종료
선택사항. arrayObj에 지정된 부분의 끝 요소는 0부터 시작하는 인덱스입니다.
설명
slice 메소드는 arrayObj의 지정된 부분을 포함하는 Array 객체를 반환합니다.
slice 메소드는 end에 지정된 요소까지 복사하지만 포함하지는 않습니다. start가 음수이면 length start로 처리됩니다. 여기서 length는 배열의 길이입니다. end가 음수이면 length end로 처리됩니다. 여기서 length는 배열의 길이입니다. end가 생략되면 슬라이스 메서드는 arrayObj의 끝까지 복사됩니다. start 앞에 end가 나타나면 새 배열에 요소가 복사되지 않습니다.

예:
코드 복사코드는 다음과 같습니다.

var arr = ["하나","둘","셋"];

var arrtoo = arr.slice(0);
arrtoo[1] = "지도 설정";
document.writeln("배열의 원래 값: " arr "
");//내보내기: 배열의 원래 값: One,Two,Three
document.writeln("The 배열의 새 값: " arrtoo "
");//내보내기: 배열의 새 값: One,set Map,Three

방법 2: js concat 방법

코드 복사 코드는 다음과 같습니다.

concat() 메소드는 두 개 이상의 배열을 연결하는 데 사용됩니다.
이 메서드는 기존 배열을 변경하지 않고 연결된 배열의 복사본만 반환합니다.
구문
arrayObject.concat(arrayX,arrayX,...,arrayX)
설명
새 배열을 반환합니다. 배열은 모든 arrayX 매개변수를 arrayObject에 추가하여 생성됩니다. concat()에 대한 인수가 배열이면 배열이 아닌 배열의 요소가 추가됩니다.
var arr = ["One","Two","Three"];

예:
코드 복사 코드는 다음과 같습니다.

var arrtooo = arr.concat();
arrtooo[1] = "set Map To";
document.writeln(" 배열의 원본 값: " arr "
");//내보내기: 배열의 원래 값: One,Two,Three
document.writeln("배열의 새 값: " arrtooo "
");//내보내기: 배열의 새 값: One,set Map To,Three
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿