프로그래밍 언어/HTML,CSS,JS

Javascript에서 배열 시작 부분에 새 배열 요소를 추가하는 방법

Rateye 2022. 1. 6. 14:57
728x90
반응형
질문 : Javascript에서 배열 시작 부분에 새 배열 요소를 추가하려면 어떻게해야합니까?

배열 시작 부분에 요소를 추가하거나 앞에 추가해야합니다.

예를 들어, 내 배열이 아래와 같은 경우 :

[23, 45, 12, 67]

그리고 내 AJAX 호출의 응답은 34 이며 업데이트 된 배열은 다음과 같습니다.

[34, 23, 45, 12, 67]

현재 다음과 같이 할 계획입니다.

var newArray = [];
newArray.push(response);

for (var i = 0; i < theArray.length; i++) {
    newArray.push(theArray[i]);
}

theArray = newArray;
delete newArray;

이 작업을 수행하는 더 좋은 방법이 있습니까? Javascript에이를 수행하는 내장 기능이 있습니까?

내 방법의 복잡성은 O(n) 이며 더 나은 구현을 보는 것이 정말 흥미로울 것입니다.

답변

unshift 사용하십시오. 끝이 아닌 배열의 시작 부분에 요소를 추가한다는 점을 제외하면 push 와 같습니다.

  • unshift / push - 배열의 시작 / 종료로 된 요소에 추가
  • shift / pop 배열의 첫 번째 / 마지막 요소를 제거하고 반환

간단한 다이어그램 ...

   unshift -> array <- push
   shift   <- array -> pop

및 차트 :

          add  remove  start  end
   push    X                   X
    pop           X            X
unshift    X             X
  shift           X      X

MDN 어레이 문서를 확인하십시오. 배열에서 요소를 푸시 / 팝하는 기능이있는 거의 모든 언어는 요소를 이동 해제 / 이동 ( push_front / pop_front 라고도 함) 할 수있는 기능도 있으므로 직접 구현할 필요가 없습니다.

주석에서 지적했듯이 원래 배열을 변경하지 않으려면 두 개 이상의 배열을 함께 연결 concat 이를 사용하여 단일 요소를 기존 배열의 전면 또는 후면에 기능적으로 푸시 할 수 있습니다. 이렇게하려면 새 요소를 단일 요소 배열로 바꿔야합니다.

const array = [3, 2, 1]

const newFirstElement = 4

const newArray = [newFirstElement].concat(array) // [ 4, 3, 2, 1 ]

console.log(newArray);

concat 은 항목을 추가 할 수도 있습니다. concat 대한 인수는 모든 유형이 될 수 있습니다. 아직 배열이 아닌 경우 단일 요소 배열로 암시 적으로 래핑됩니다.

const array = [3, 2, 1]

const newLastElement = 0

// Both of these lines are equivalent:
const newArray1 = array.concat(newLastElement) // [ 3, 2, 1, 0 ]
const newArray2 = array.concat([newLastElement]) // [ 3, 2, 1, 0 ]

console.log(newArray1);
console.log(newArray2);
출처 : https://stackoverflow.com/questions/8073673/how-can-i-add-new-array-elements-at-the-beginning-of-an-array-in-javascript
728x90
반응형