꿈꾸는 개발자의 블로그
[JavaScript] 문자열 추출하기 : slice(), splice() 본문
이상하게.. 저 두 함수가 너무 헷갈려서 정리해봤다.
slice()
Array.slice(begin, end) : 어떤 배열의 begin부터 end(미포함)까지 새로운 배열을 반환한다. 만약 end가 없을 경우 배열의 끝까지 추출한다. 음수는 배열의 끝에서부터 길이를 나타낸다.
begin Optional : 추출 시작점 인덱스
end Optional : 추출 종료한 인덱스 (end 인덱스를 제외하고 추출)
반환값 : 새로운 배열
let alphabet = ['a', 'b', 'c', 'd', 'e'];
// 0 1 2 3 4
// -5 -4 -3 -2 -1
let result1 = alphabet.slice(0, 2); // ['a', 'b']
let result2 = alphabet.slice(); // ['a', 'b', 'c', 'd', 'e']
let result3 = alphabet.slice(2); // ['c', 'd', 'e']
let result4 = alphabet.slice(-2); // ['d', 'e']
let result5 = alphabet.slice(2, -1); // ['c', 'd']
splice()
Array.splice(start, deleteCount, item) : 배열의 기존 요소를 삭제, 교체, 추가하여 내용을 변경한다. deleteCount가 0 이하라면 어떤 요소도 제거하지 않으며 item을 지정하지 않으면 제거만 한다. 반환값은 기존 배열에서 제거한 요소만 담은 배열이라는 것이 무슨 소리인가 했는데... 정말 제거한 요소만 배열로 반환하고, 기존 배열은 따로 존재하는 것이였다. 아래 코드 예시를 보면 이해할 수 있을 것이다.
start : 배열의 변경을 시작할 인덱스
deleteCount Optional : 배열에서 제거할 요소의 개수
item Optional : 배열에 추가할 요소
반환값 : 기존 배열에서 제거한 요소를 담은 배열
let alphabet = ['a', 'c', 'd', 'f'];
let result1 = alphabet.splice(1, 0, 'b'); // alphabet = ['a', 'b', 'c', 'd', 'f']
// result1 = [] (아무값도 제거하지 않아서 빈 배열 반환)
let result2 = alphabet.splice(4, 1, 'e'); // alphabet = ['a', 'b', 'c', 'd', 'e']
// result2 = ['f']
let result3 = alphabet.splice(4, 1); // alphabet = ['a', 'b', 'c', 'd']
// result3 = ['e']
728x90
728x90
'Programming > JavaScript' 카테고리의 다른 글
[JavaScript] this (0) | 2022.07.19 |
---|---|
[JavaScript] map(), filter(), reduce() (0) | 2022.06.28 |
[JavaScript] ES6 Rest, Spread Operator (0) | 2022.06.16 |
[JavaScript] DOM, Document, Node란? (0) | 2022.04.18 |
[JavaScript] 이벤트 등록 및 삭제하기 : EventListener (0) | 2022.04.18 |
Comments