>  기사  >  웹 프론트엔드  >  Javascript는 문제를 해결하기 위해 연결하지 않고 여러 배열을 연결합니다_javascript 기술

Javascript는 문제를 해결하기 위해 연결하지 않고 여러 배열을 연결합니다_javascript 기술

WBOY
WBOY원래의
2016-05-16 16:54:291059검색

첫 번째 방법은 잘 알려진 concat이지만 이 방법의 한 가지 특징은 기존 배열을 변경하지 않고 연결된 배열의 복사본만 반환한다는 것입니다.

단지 기존 배열에 새 배열의 요소를 추가하려면 이를 다시 할당해야 하는데 이는 실제로 약간의 리소스 낭비입니다. 간단히 말해서 새로 생성된 배열에 새 메모리 공간을 할당하고 arr1을 이 새 메모리 주소로 리디렉션해야 합니다. 그렇다면 메모리의 원래 배열은 어떻습니까? 헤헤, 브라우저가 이를 올바르게 재활용할 수 있는지 여부에 따라 달라집니다.

다음 예:

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

var arr1 = [1,2,3];
var arr1 = arr1.concat([4,5]);

이 리소스를 피할 수 있는 좋은 방법이 있습니까? 소비?

여기서 Javascript의 기본 적용 메소드를 사용하여 이를 달성할 수 있습니다. 먼저 다음 코드를 살펴보세요.
코드 복사 코드는 다음과 같습니다.

var arr1= [1,2,3]
arr1.push.apply(arr1,[4,5]); 🎜>
끝났습니다. 이 메서드는 적용 메서드의 특성(두 번째 매개 변수는 여러 배열 유형)을 교묘하게 사용하여 푸시 메서드를 해방합니다. 푸시 메서드는 자체에서 여러 값만 전달할 수 있습니다. 위 코드는 실제로


arr1.push(4,5) ;


이런 식으로 arr1은 여전히 ​​arr1과 동일하지만 리디렉션이나 불필요한 메모리 오버플로 없이 메모리가 다시 작성되었습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.