Array splice

agnusdei·2023년 7월 22일
0

Array.prototype.splice() 메서드는 배열의 기존 요소들을 삭제, 수정, 또는 새 요소를 추가하는데 사용됩니다. 이 메서드는 원본 배열을 직접 수정하며, 변경한 요소들로 구성된 새 배열을 반환합니다.

splice() 메서드의 사용법은 다음과 같습니다:

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
  • start: 배열에서 변경을 시작할 인덱스를 지정합니다. 음수일 경우 배열의 끝에서부터 인덱싱합니다.
  • deleteCount(optional): 삭제할 요소의 수를 지정합니다. 생략하거나 배열의 길이를 넘어가는 수를 지정하면, start부터 끝까지의 모든 요소를 삭제합니다.
  • item1, item2, ...(optional): 배열에서 삭제된 요소 대신 삽입할 요소를 지정합니다. 없으면 요소를 삽입하지 않습니다.

내부 동작:

  1. start 인덱스를 계산합니다. 음수일 경우 array.length에 더합니다.
  2. deleteCount를 계산합니다. 생략되면, array.length - start로 설정합니다. 그렇지 않으면 에러 검사를 진행하고, 최대 array.length - start로 제한합니다.
  3. 삭제할 요소를 별도의 배열에 저장하고 반환합니다.
  4. 삭제 및 추가할 요소의 개수에 따라 배열의 길이를 조정합니다.
  5. item1, item2, ... 가 있다면, start 인덱스에 삽입합니다.
  6. 반환할 삭제된 요소 배열을 반환합니다.

예시:

let fruits = ["apple", "banana", "cherry", "date", "fig"];

// 예시 1: 배열에서 요소 삭제하기
let removed = fruits.splice(1, 2);
console.log(fruits); // ["apple", "date", "fig"]
console.log(removed); // ["banana", "cherry"]

// 예시 2: 배열에서 요소 수정하기
removed = fruits.splice(1, 1, "lemon");
console.log(fruits); // ["apple", "lemon", "fig"]
console.log(removed); // ["date"]

// 예시 3: 배열에서 요소 추가하기
removed = fruits.splice(2, 0, "kiwi");
console.log(fruits); // ["apple", "lemon", "kiwi", "fig"]
console.log(removed); // []

// 예시 4: 음수 인덱스 사용하기
removed = fruits.splice(-2, 1);
console.log(fruits); // ["apple", "lemon", "fig"]
console.log(removed); // ["kiwi"]

splice() 메서드를 통해 배열의 요소를 삭제, 수정, 또는 추가할 수 있습니다. 이 메서드는 원본 배열을 수정하므로 작업을 수행하기 전 복사본을 만드는 것이 좋습니다.

0개의 댓글