JS Splice

최정환·2021년 12월 21일
0

JS 문법 따로따로 

목록 보기
2/4

splice

배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경합니다. 반환되는 배열의 길이는 함수인자에 따라 flexible하다

array.splice(start[, deleteCount[, item1[, item2[, ...]]]])

start (배열의 변경을 시작할 인덱스)

배열의 길이보다 큰 값이라면 실제 시작 인덱스는 배열의 길이로 설정됩니다.
음수인 경우 배열의 끝에서부터 요소를 세어나갑니다(원점 -1, 즉 -n이면 요소 끝의 n번째 요소를 가리키며 array.length - n번째 인덱스와 같음).
값의 절대값이 배열의 길이 보다 큰 경우 0으로 설정됩니다.

const months = ['Jan', 'March', 'April', 'June'];

양수인 경우
months.splice(1, 0, 'Feb');
console.log(months); // Array ["Jan", "Feb", "March", "April", "June"]

음수인 경우
months.splice(-2, 0, 'Feb');
console.log(months); //  Array ["Jan", "March", "Feb", "April", "June"]

절대값이 배열의 길이보다 큰 경우()
months.splice(7, 0, 'Feb');
console.log(months); // Array ["Jan", "March", "April", "June", "Feb"]

절대값이 배열의 길이보다 큰 경우()
months.splice(-7, 0, 'Feb');
console.log(months); // Array ["Feb", "Jan", "March", "April", "June"]

deleteCount

배열에서 제거할 요소의 수 이것은 선택적이다.
값이 1개 이상이라면 startIndex에서부터제거라고 생각

deleteCount를 생략하거나 값이 array.length - start보다 크면 start부터의 모든 요소를 제거합니다.
deleteCount가 0 이하라면 어떤 요소도 제거하지 않습니다. 이 때는 최소한 하나의 새로운 요소를 지정해야 합니다.

기본적인
months.splice(1, 1, 'Feb');
console.log(months); // Array ["Jan", "Feb", "April", "June"]

array길이보다 큼
months.splice(1, 8, 'Feb');
console.log(months); // Array ["Jan", "Feb"]

0이하
months.splice(1, -2, 'Feb');
console.log(months); // Array ["Jan", "Feb", "March", "April", "June"]

item1, item2, ...

배열에 추가할 요소 이것은 선택적이다.
아무 요소도 지정하지 않으면 splice()는 요소를 제거하기만 합니다.

2개
months.splice(1, 1, 'Feb','Decem');
console.log(months); // Array ['Jan', 'Feb','Decem', 'April', 'June']

0개
months.splice(1, 1 );
console.log(months); // Array ["Jan", "April", "June"]

반환 값
제거한 요소를 담은 배열.
하나의 요소만 제거한 경우 길이가 1인 배열을 반환합니다.
아무 값도 제거하지 않았으면 빈 배열을 반환합니다.

const months = ['Jan', 'March', 'April', 'June'];
var mm = months.splice(1,2,"떡볶이","김밥" );
// inserts at index 1
console.log(months);// Array ["Jan", "떡볶이", "김밥", "June"]
console.log(mm);	//Array ["March", "April"]

참고:
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

0개의 댓글