이번 시간에는 저번 시간에 이어서 Array 객체의 함수의 종류와 특징에 대해서 살펴보겠습니다.
pop() 함수와 shift() 함수
자바스크립트에서 pop() 함수와 shift() 함수는 모두 배열 요소를 조작하는 데 사용되는 배열 메서드입니다. 두 함수 모두 배열에서 요소를 제거하는 데 사용되지만 제거하는 요소와 원래 배열을 수정하는 방법에 따라 다르게 작동합니다.
먼저 pop() 함수에 대해서 소스와 함께 살펴보겠습니다.
pop() 함수는 배열에서 마지막 요소를 제거하고 제거된 요소를 반환하는 데 사용됩니다.
다음은 shift() 함수입니다.
shift() 함수는 배열에서 첫 번째 요소를 제거하는 데 사용되며 제거된 요소를 반환합니다. 또한 나머지 모든 요소를 왼쪽으로 한 위치 이동하여 원래 배열을 변경하여 길이를 효과적으로 줄입니다.
pop() 함수와 shift() 함수 모두 원래 배열을 직접 수정합니다. 만약 원본 배열을 그대로 유지하면서 복사본으로 작업을 하고 싶다면 두 함수를 사용하기 전에 배열의 복사본을 만들어주고 사용해야 합니다.
정리하자면 두 함수 모두 배열에서 요소를 추출하는 데 사용되고 Array 객체에서 맨 뒤에 있는 요소를 추출할 때는 pop() 함수, 맨 앞에 있는 요소를 추출할 때는 shift() 함수를 사용하며, 두 함수 모두 원래 배열을 직접 수정합니다.
splice() 함수
앞에서 살펴봤던 함수는 모두 맨 앞의 요소를 추가, 삭제 하거나 맨 뒤의 요소를 추가, 삭제하는 함수입니다. 하지만 프로그래밍을 하다보면 맨 앞, 뒤가 아닌 지정된 위치에 요소를 추가하거나 삭제해야 하는 경우도 발생합니다. 그럴 때 사용하는 함수가 splice() 함수입니다.
splice() 함수는 원래 배열을 직접 수정하며, 제거된 요소를 포함하는 배열을 반환합니다.
(만약 제거된 요소가 없는 경우 빈 배열을 반환합니다)
소스를 보면서 설명하겠습니다.
매개변수:
start : 배열 수정을 시작할 인덱스입니다. 음수인 경우 배열 끝에서의 오프셋을 나타냅니다. 만약 start가 배열의 길이보다 큰 경우 배열 길이로 설정됩니다. start가 생략된 경우 수정은 인덱스 0부터 시작합니다.
deleteCount : start 인덱스부터 제거할 요소의 개수입니다. deleteCount가 생략되거나 start부터 배열 끝까지의 요소 개수보다 큰 경우 start부터 배열 끝까지의 모든 요소가 제거됩니다.
item1, item2, ... : start 인덱스에 삽입할 요소들입니다. 삽입할 요소가 없는 경우 이러한 매개변수를 생략할 수 있습니다.
반환값:
splice() 메서드는 제거된 요소를 포함하는 배열을 반환합니다. 요소가 제거되지 않은 경우 빈 배열이 반환됩니다.
요소 제거:
요소 삽입:
요소 대체:
slice() 함수
slice() 함수는 배열에서 요소를 꺼낸다는 점에서 앞에 나온 pop() 함수나 shift() 함수와 같지만, 여러 개의 요소를 꺼낼 수 있다는 점에서 차이점이 있습니다. slice() 함수는 시작 인덱스와 끝 인덱스를 지정해서 그 사이의 요소를 꺼냅니다.
splice() 함수처럼 slice() 함수도 시작 인덱스만 지정할 경우 시작 인덱스부터 배열 끝까지 추출합니다.
slice() 함수는 원래 데이터를 수정하지 않고 배열의 특정 부분집합을 활용할 때 유용하게 사용됩니다.
감사합니다.
틀린 부분이 있거나 더 좋은 내용 훈수 환영합니다!
공감과 댓글 부탁드립니다.
'JavaScript' 카테고리의 다른 글
[자바스크립트] 브라우저 객체 모델 (1) (0) | 2023.08.20 |
---|---|
[자바스크립트] 문서 객체 모델(DOM) (0) | 2023.08.05 |
[자바스크립트] Array 객체의 함수 (1) (0) | 2023.08.02 |
[자바스크립트] 배열, Array 객체 (0) | 2023.07.30 |
[자바스크립트] 객체와 객체를 이용한 프로그램 (2) | 2023.07.29 |