728x90
반응형
질문 : 새 배열을 만들지 않고 기존 JavaScript 배열을 다른 배열로 확장하는 방법
기존 자바 스크립트 배열을 다른 배열로 확장하는 방법, 즉 Python의 extend
메소드를 에뮬레이션하는 방법이없는 것 같습니다.
다음을 달성하고 싶습니다.
>>> a = [1, 2]
[1, 2]
>>> b = [3, 4, 5]
[3, 4, 5]
>>> SOMETHING HERE
>>> a
[1, 2, 3, 4, 5]
a.concat(b)
메서드가 있다는 것을 알고 있지만 단순히 첫 번째 배열을 확장하는 대신 새 배열을 만듭니다. 내가하면 효율적으로 작동하는 알고리즘 싶습니다 a
보다 훨씬 큰 b
(즉, 하나를 복사하지 않는 a
).
참고 : 이것은 배열에 무언가를 추가하는 방법 의 중복이 아닙니다. -여기서 목표는 한 배열의 전체 내용을 다른 배열에 추가하고이를 "제자리에서"수행하는 것입니다. 즉, 확장 배열의 모든 요소를 복사하지 않고 수행합니다.
답변
.push
메서드는 여러 인수를 사용할 수 있습니다. 스프레드 연산자 를 사용하여 두 번째 배열의 모든 요소를 .push
.
>>> a.push(...b)
브라우저가 ECMAScript 6을 지원하지 않는 경우 대신 .apply
>>> a.push.apply(a, b)
또는 더 명확하다고 생각하는 경우 :
>>> Array.prototype.push.apply(a,b)
b
가 너무 길면 이러한 모든 솔루션이 스택 오버플로 오류와 함께 실패합니다 (문제는 브라우저에 따라 약 100,000 개 요소에서 시작됨).b
가 충분히 짧다는 것을 보장 할 수없는 경우 다른 답변에 설명 된 표준 루프 기반 기술을 사용해야합니다.
출처 : https://stackoverflow.com/questions/1374126/how-to-extend-an-existing-javascript-array-with-another-array-without-creating
728x90
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
JavaScript에서 배열을 통해 반복하는 여러 방법 (0) | 2021.12.08 |
---|---|
jQuery / JavaScript 이미지 오류 발생시 대체 이미지를 사용하는 방법 (0) | 2021.12.08 |
JavaScript 콘솔에 jQuery를 포함하는 방법 (0) | 2021.12.08 |
null이 객체 인 이유는 무엇이며 null과 undefined의 차이점 (0) | 2021.12.07 |
JavaScript에서 Switch 문 여러 case 한번에 사용하는 방법 (0) | 2021.12.06 |