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
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
JavaScript 날짜 형식을 지정하는 방법 (0) | 2022.03.26 |
---|---|
JavaScript 변수 이름에 유효한 문자 목록 (0) | 2022.01.17 |
스크롤 후 요소가 보이는지 확인하는 방법 (0) | 2022.01.06 |
[Javascript] html 클래스가 포함되어 있는지 확인하는 방법 (0) | 2022.01.06 |
JavaScript에서 HTTP GET 요청 하는 방법 (0) | 2021.12.19 |