본문 바로가기

공부 자료/자바스크립트[JS]

[JS] 배열(array)의 삽입/삭제/추출/연결 메서드 - splice(), slice(), concat()

자바스크립트에서는 배열의 일부를 삭제하거나, 삽입, 추출이 자바에 비해서는 자유로운데, 어떤지 살펴보고자 한다.

 

[배열의 삭제]

let arr =[10, 20, 30, 40];

delete arr[1]; // (1) [10, 20, 40]
arr.splice(1,1); // (2) [10, 20, 40]
arr.splice(1, 2, 100, 200); // (3) [10,100, 200, 40]

(1) delete 배열명[m] : 해당 배열의 m번째 요소를 삭제

(2) 배열명.splice(m 시작 위치, n 삭제 개수) : 해당 배열의 m번째(시작 위치)부터 n개만큼 삭제

(3) 배열명.splice(m 시작 위치, n 삭제 개수, n1, n2 ,,,)

: 해당 배열의 m번째(시작 위치)부터 n개만큼 삭제 후 해당 수만큼 n1, n2 ,,, 의 수로 대체

: 위를 이용해 배열의 삽입도 가능

 

* 위의 실행 결과는 연속적으로 실행했을 때 결과가 아닌 arr을 기준으로 실행했을 때 결과

 

[배열의 삽입]

let arr =[10, 20, 30, 40];

arr.splice(2, 0, 300, 400); // (1) [10, 20, 300, 400, 30, 40]

(1) 배열의 삭제 및 대체(위의 3번)을 이용하는데, 삭제 없이 대체만 할 경우 삽입이 가능

배열명.splice(m 시작위치, n 삭제 개수, n1, n2, ,,,) : 해당 배열의 시작 위치부터 n개만큼 삭제하고 해당 위치에 n1, n2 ,,,를 삽입

 

[배열의 일부 추출]

let narr=[10,20,30,40,50,60,70,80];
let subarr = narr.slice(2, 5); // (1) [30, 40, 50]

(1) 배열명.slice(m 시작 위치, n 종료 위치) : 해당 배열의 m번째 부터 n번 이전까지의 요소 추출

 

[배열의 연결]

let arr2=[1,2];
let totarr = arr2.concat(3,4); // [1,2,3,4]

let arr3=[10, 20];
let totarr2 = arr2.concat(arr3); // [1,2,10,20];

let totarr4=arr2.concat(3,4, [5,6],arr3); // [1,2,3,4,5,6,10,20]

(1) 배열명.concat(a,b,c, ... || 배열) : 배열의 맨 뒤에 요소를 추가하거나 배열을 연결