[자바스크립트] Array 객체의 함수 (2)

2023. 8. 3. 14:03·JavaScript
728x90
반응형

이번 시간에는 저번 시간에 이어서 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() 함수는 원래 데이터를 수정하지 않고 배열의 특정 부분집합을 활용할 때 유용하게 사용됩니다.

 

감사합니다.


틀린 부분이 있거나 더 좋은 내용 훈수 환영합니다!

공감과 댓글 부탁드립니다.

728x90
반응형

'JavaScript' 카테고리의 다른 글

[자바스크립트] 브라우저 객체 모델 (1)  (0) 2023.08.20
[자바스크립트] 문서 객체 모델(DOM)  (0) 2023.08.05
[자바스크립트] Array 객체의 함수 (1)  (0) 2023.08.02
[자바스크립트] 배열, Array 객체  (0) 2023.07.30
[자바스크립트] 객체와 객체를 이용한 프로그램  (4) 2023.07.29
'JavaScript' 카테고리의 다른 글
  • [자바스크립트] 브라우저 객체 모델 (1)
  • [자바스크립트] 문서 객체 모델(DOM)
  • [자바스크립트] Array 객체의 함수 (1)
  • [자바스크립트] 배열, Array 객체
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (201)
      • Apple (119)
        • iOS (22)
        • visionOS (4)
        • Swift (65)
        • UIKit (2)
        • SwiftUI (20)
        • RxSwift (2)
        • Xcode (4)
      • C언어 (5)
      • C++ (8)
      • Dart (1)
      • Python (3)
      • JavaScript (17)
      • Git (1)
      • CS (39)
        • 디자인 패턴 (6)
        • 네트워크 (20)
        • 운영체제 (8)
        • Database (5)
        • 자료구조 (0)
      • IT 지식 (2)
      • IT 뉴스 (4)
      • 출처 표기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Vision Pro
    운영체제
    ios
    코딩테스트
    티스토리챌린지
    자바스크립트
    클래스
    옵셔널
    함수
    스위프트
    Xcode
    SWIFT
    Optional
    visionOS
    UIKit
    제어문
    디자인패턴
    swiftUI
    비동기
    변수
    프로세스
    배열
    연산자
    메서드
    combine
    프로퍼티 래퍼
    Initializers
    네트워크
    오블완
    이니셜라이저
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
P_Piano
[자바스크립트] Array 객체의 함수 (2)
상단으로

티스토리툴바