자바스크립트에서 Array.prototype.splice()의 사용법은 무엇인가요?
_____Q1: splice() 메서드란 무엇인가요?
- splice()는 배열의 기존 요소를 삭제하거나 교체하거나 새 요소를 추가하여 배열을 변경하는 메서드입니다. 원본 배열이 직접 수정됩니다.
Q2: splice() 함수의 기본 문법은 어떻게 되나요?
```javascript
array.splice(start, deleteCount, item1, item2, ...);
```
- `start`: 배열에서 변경을 시작할 인덱스 (음수도 가능, 배열 끝에서부터 계산)
- `deleteCount`: 배열에서 삭제할 요소 수 (0이면 삭제 없이 삽입만)
- `item1, item2, ...`: 배열에 새로 삽입할 요소들 (optional)
Q3: splice()가 반환하는 값은 무엇인가요?
- 삭제된 요소들을 요소로 가지는 배열을 반환합니다. 삭제가 없으면 빈 배열을 반환합니다.
Q4: splice()로 요소 삭제 예제는요?
```javascript
let arr = ['a', 'b', 'c', 'd', 'e'];
let removed = arr.splice(1, 2); // 인덱스 1부터 2개 삭제
console.log(arr); // ['a', 'd', 'e']
console.log(removed); // ['b', 'c']
```
Q5: splice()로 요소 추가 예제는요?
```javascript
let arr = ['a', 'b', 'c'];
arr.splice(1, 0, 'x', 'y'); // 인덱스 1 위치에 요소 삭제 없이 'x', 'y' 삽입
console.log(arr); // ['a', 'x', 'y', 'b', 'c']
```
Q6: splice()로 요소 교체 예제는요?
```javascript
let arr = ['a', 'b', 'c', 'd'];
arr.splice(2, 1, 'x', 'y'); // 인덱스 2의 요소 1개를 삭제하고 'x', 'y' 삽입
console.log(arr); // ['a', 'b', 'x', 'y', 'd']
```
Q7: splice()에서 start 인덱스가 음수면 어떻게 되나요?
- 배열 끝에서부터 계산하여 시작 위치를 지정합니다. 예: -1 은 마지막 요소, -2는 끝에서 두번째 요소 의미
```javascript
let arr = ['a', 'b', 'c', 'd'];
arr.splice(-2, 1); // 인덱스 2 ('c') 삭제
console.log(arr); // ['a', 'b', 'd']
```
Q8: deleteCount를 생략하면 어떻게 되나요?
- `deleteCount`가 생략되면 `start` 위치부터 배열 끝까지 모든 요소가 삭제됩니다.
```javascript
let arr = ['a', 'b', 'c', 'd'];
arr.splice(2); // 인덱스 2부터 끝까지 삭제
console.log(arr); // ['a', 'b']
```
Q9: splice() 사용 시 주의할 점이 있나요?
- splice()는 원본 배열을 직접 변경합니다. 불변성을 유지하려면 복사본 배열을 사용하거나 다른 메서드를 고려하세요.
- 인덱스와 deleteCount가 적절한지 확인하고 음수를 사용할 때 배열 범위를 벗어나지 않도록 주의하세요.
---
요약: splice()는 배열을 수정할 때 매우 유용한 메서드로, 배열 내 특정 위치에서 원하는 개수만큼 요소를 삭제하거나 여러 요소를 동시에 삽입, 교체할 수 있습니다. 반환값은 삭제한 요소들의 배열이며 원본 배열이 직접 변형됩니다.
이 메서드는 원래 배열을 수정하며, 배열의 특정 인덱스에서 요소를 삽입하거나 삭제할 수 있습니다.
`splice()` 메서드는 다음과 같은 구문을 가지고 있습니다: ```javascript array.splice(start, deleteCount, item1, item2, ...) ``` 매개변수 설명 1. start : 배열에서 변경을 시작할 인덱스입니다.
이 인덱스는 0부터 시작하며, 음수 값을 사용하면 배열의 끝에서부터의 오프셋을 나타냅니다.
예를 들어, -1은 배열의 마지막 요소를 의미합니다.
2. deleteCount : 배열에서 제거할 요소의 수입니다.
이 값이 0이면 요소를 제거하지 않고, 그 대신 새로운 요소를 추가할 수 있습니다.
이 값이 배열의 길이보다 크면, `start` 인덱스부터 배열의 끝까지 모든 요소가 제거됩니다.
3. item1, item2, ... : 배열에 추가할 요소들입니다.
이 매개변수는 선택적이며, 하나 이상의 요소를 추가할 수 있습니다.
반환값 `splice()` 메서드는 제거된 요소들로 이루어진 배열을 반환합니다.
만약 제거된 요소가 없다면 빈 배열을 반환합니다.
사용 예제 1. 요소 제거하기 ```javascript let fruits = ['apple', 'banana', 'cherry', 'date']; let removed = fruits.splice(1,
2); // 인덱스 1부터 2개의 요소를 제거 console.log(fruits); // ['apple', 'date'] console.log(removed); // ['banana', 'cherry'] ``` 위의 예제에서 `fruits` 배열의 인덱스 1부터 2개의 요소가 제거되었습니다.
결과적으로 `fruits` 배열은 `['apple', 'date']`가 되었고, 제거된 요소는 `['banana', 'cherry']`로 반환되었습니다.
2. 요소 추가하기 ```javascript let numbers = [1, 2, 3]; numbers.splice(1, 0, 4,
5); // 인덱스 1에 4와 5를 추가 console.log(numbers); // [1, 4, 5, 2, 3] ``` 위의 예제에서는 `numbers` 배열의 인덱스 1에 4와 5를 추가했습니다.
`deleteCount`가 0이므로 기존 요소는 제거되지 않았습니다.
3. 요소 대체하기 ```javascript let colors = ['red', 'green', 'blue']; colors.splice(1, 1, 'yellow'); // 인덱스 1의 요소를 'yellow'로 대체 console.log(colors); // ['red', 'yellow', 'blue'] ``` 이 예제에서는 `colors` 배열의 인덱스 1에 있는 요소를 'yellow'로 대체했습니다.
`deleteCount`가 1이므로 'green'이 제거되었습니다.
주의사항 - `splice()` 메서드는 원래 배열을 직접 수정하므로, 원본 배열을 유지하고 싶다면 복사본을 만들어 사용해야 합니다.
- 배열의 길이가 변경되므로, 반복문을 사용하여 배열을 순회할 때 주의해야 합니다.
결론 `Array.prototype.splice()`는 배열의 요소를 추가, 제거 또는 대체하는 데 매우 유용한 메서드입니다.
다양한 상황에서 배열을 조작할 수 있는 강력한 도구로, 자바스크립트 프로그래밍에서 자주 사용됩니다.
배열을 다룰 때 `splice()`의 사용법을 잘 이해하고 활용하면, 보다 효율적인 코드 작성이 가능할 것입니다.
작성자:
김서율 [비회원]
| 작성일자: 1년 전
2024-09-08 14:47:27
조회수: 157 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 157 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.