Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 백트래킹
- 백트래킹java
- 조합java
- sop cors
- 멀티프로세스 멀티스레드
- graphql 비교
- 티스토리챌린지
- 이해할때까지안잔다
- javascript crypto
- cors동작방식
- crypto 난수생성
- 중복순열중복조합
- cors origin
- 대칭키 비대칭키
- 순열java
- 순열조합중복순열중복조합
- 백트래킹알고리즘
- 인덱스 알고리즘
- 오블완
- 순열조합
- crypto 0이상 1미만
- 백트래킹자바
- crypto.getrandomvalues() 부동소수점
- 인덱스 예시
- graphql 장단점
- db 인덱스 개념
- crypto.getrandomvalues()
- graphql 예시
- cors시나리오
- javascript 난수생성
Archives
- Today
- Total
물흐르듯코딩
[javascript] 배열 slice() & splice() 사용법 및 예시 본문
javascript에서 배열 요소를 삭제하거나 추가, 기존값을 대체할 때 활용할 수 있는 slice() 함수와 spliece() 함수에 대해 알아보자 🤓
slice() 함수
인자로 받은 인덱스에 따라 배열의 특정 범위를 복사하여 반환하는 함수이다.
첫 번째 인자엔 시작 인덱스, 두 번째 인자엔 종료 인덱스가 들어간다. slice() 함수는 값을 복사하여 반환하기 때문에 원본 배열은 그대로 유지된다.
- 시작 인덱스부터 (종료인덱스-1)까지 잘라서 반환한다. 종료인덱스는 포함하지 않는다는 것을 유념!
- 두 번째 인자가 없을 경우엔 시작 인덱스부터 끝까지 값을 모두 복사하여 반환한다.
- 모든 인자가 없다면 배열의 처음부터 끝까지 모든 값을 복사하여 반환한다.
const data=[0,1,2,3,4,5,6,7]
data.slice(3,5); // [3,4]
splice() 함수
인자 값에 따라 배열의 특정 범위를 삭제하거나 새로운 값을 추가, 기존 값을 대체할 수 있는 함수이다. 첫 번째 인자엔 시작 인덱스, 두 번째 인자엔 몇 개의 값을 삭제할지, 세 번째 인자부턴 추가할 값이 들어간다. splice() 함수는 배열을 복사하지 않기 때문에 원본 데이터 유지 없이 함수를 거친 결과값이 실제 배열에 반영된다.
아래 예시 배열로 인자를 다양하게 변환해 splice() 함수 사용법을 알아보자.
- 특정 범위를 삭제
const data=[0,1,2,3,4,5,6,7]
data.splice(5,3) // [5, 6, 7] 삭제되는 요소를 반환한다.
data // [0, 1, 2, 3, 4]
- 특정 인덱스부터 값 삭제 없이 새로운 값 추가
const data=[0,1,2,3,4,5,6,7]
data.splice(1, 0, 10, 11, 12) // []
data // [0, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7]
- 특정 인덱스의 기존 값 대체
: 첫 번째 인자엔 값을 대체하려는 시작 인덱스, 두 번째는 몇 개를 대체할 것인지, 세 번째부턴 무엇으로 대체할 것인지
const data=[0,1,2,3,4,5,6,7]
data.splice(0, 2, 20, 21) // [0, 1]
data // [20, 21, 2, 3, 4, 5, 6, 7]
❓ 만약 3개의 값을 삭제하고 4개의 값을 추가하면 어떻게 될까?
: 기존 배열의 크기보다 하나 더 커진다.
const data=[0,1,2,3,4,5,6,7]
data.splice(0, 3, 20, 21, 22, 23) // [0, 1, 2]
data // [20, 21, 22, 23, 3, 4, 5, 6, 7]
- 특정 인덱스부터 끝까지 삭제
: 시작하는 인덱스만 채워주면 된다. 만약 배열의 모든 원소를 삭제하려면 splice(0)을 넘겨주면 모두 삭제된 배열 확인할 수 있다.
const data=[0,1,2,3,4,5,6,7]
data.splice(5) // [5, 6, 7]
data // [0, 1, 2, 3, 4]
slice() vs splice()
slice()는 원본 배열은 유지된 채 복사된 배열에서 slice 결과를 반환하는 반면 splice()는 원본 배열이 유지되지 않고 실제 배열에 splice 결과가 반영되어 반환된다.
원본 배열 데이터를 이후에 사용해야 한다면 splice보단 slice를, 변경된 값이 적용된 배열을 사용해야 한다면 splice 함수를 쓰는 것을 추천한다.
'FE' 카테고리의 다른 글
[javascript] trim() 사용법 - 문자열 양 끝 공백 제거 (0) | 2024.04.23 |
---|---|
[javascript] Object.assign() 사용법 - 객체 병합과 복제 (2) | 2024.04.20 |
[javascript] 비밀번호 조건 체크 정규식(regex) 표현 (0) | 2024.04.15 |
[javascript] Math.random,floor,ceil,round,pow() (0) | 2024.04.11 |
typescript, javascript 특징 및 비교 (0) | 2024.04.10 |