[javascript] 배열 요소의 추가, 변경, 삭제하기

배열 요소의 추가 삭제가 제한적인 다른 언어와 달리 javascript에는 배열 요소를 수정 삭제할 수 있는 강력한 메서드를 제공합니다.

splice() 메서드를 사용하면 1개 이상의 연달아 나오는 배열 요소(들)을 삭제할 수 있으며, 동시에 배열 요소를 추가하는 것 또한 가능합니다.

배열 요소를 추가하는 다양한 메서드들이 제공되지만, 훨씬 강력한 배열 요소 삽입 기능을 제공합니다.

메서드 기본 사용 방법

Array.splice(시작인덱스, 삭제할 요소 길이, 추가할 배열 요소1, 추가할 배열요소2, ...)

인자 

용도 

시작인덱스

배열의 시작 인덱스(0에서 시작). 배열의 삭제, 또는 배열 요소를 추가하는 시작 위치.

삭제시에는 시작 인덱스를 포함하며, 추가시에는 시작 인덱스 뒤에 추가됨. 

삭제할 요소 길이

0이면 배열 요소 삭제 없음.

0보다 크면 시작인덱스 포함 갯수만큼 오른쪽 방향으로 배열 요소를 삭제

추가할 배열 요소

추가하는 배열 요소를 인자로 넘김.

생략 가능하며, 여러개의 배열 요소를 인자로 순서대로 넘겨 추가할 수 있음.

배열 요소 삭제가 있을 경우 삭제된 위치에 배열 요소(들)이 추가됨.

배열 요소(들)의 삭제

배열 시작 인덱스부터(포함) 갯수만큼 배열 요소를 삭제합니다.

시작 인덱스 + 갯수가 배열 길이 보다 큰 경우 시작 인뎃스부터 끝까지 배열 요소를 삭제합니다.

const str1 = ['펭수', '라이언', '어피치', '콘', '브라운', '무지'];
str1.splice(4,1);
str1.splice(0,2);
console.log(str1);

배열 요소(들)의 추가

추가하는 요소들은 인엑스 앞에 추가됩니다.

splice() 메서드로는 배열 맨끝 뒤에는 요소를 추가할 수 없습니다. 배열 끝에 추가하는 것은 push() 메서드를 사용합니다.

splice() 메서드로 배열 끝에 새 배열 요소를 추가하려면, 먼저 시작 인덱스부터 배열 끝까지 삭제를 해야 합니다.

const str2 = ['펭수', '라이언', '어피치', '콘', '브라운', '무지'];str2.splice(4, 0, '프로도');
str2.splice(0 ,0, '네오', '튜브');
console.log(str2);

배열 요소(들)의 변경

splice()  메서드는 인자를 이용해 삭제와 추가를 동시에 할 수 있기 때문에, 특정 위치의 배열 요소를 변경하는 것과 동일한 효과를 만들 수 있습니다.

변경과 다른 점은 splice() 메서드는 실제 동작인 삭제 후 추가를 한다는 것입니다.

const str3 = ['펭수', '라이언', '어피치', '콘', '브라운', '무지'];str3.splice(4, 1, '프로도');
str2.splice(0 ,3, '네오', '튜브');
console.log(str3);