본문 바로가기

Web Dev./Javascript

자바스크립트 배열 내장 함수2


concat()
기본의 배열원소 뒤에 전달 인자들을 추가한 배열을 반환한다. 허나 중복하여 중첩된 배열은, 원소로써 분리되어 나오지 않음을 주의 하자.

var arr = new Array(1, 2, 3);
arr.concat(4, 5) // arr : [1, 2, 3, 4, 5]
arr.concat([4, 5]) // arr : [1, 2, 3, 4, 5]
arr.concat([4, 5], [6, 7]) // arr : [1, 2, 3, 4, 5, 6, 7]
arr.concat([4, [5, [6, 7]]) // arr : [1, 2, 3, 4, 5, 6, 7]]


slice()
배열의 일부, 혹은 부분배열을 반환한다. 전달인자가 음수일 경우 배열의 마지막 원소에서 상대적인 위치로 배열 원소들을 지정한다.

var arr = new Array(1, 2, 3, 4, 5);
arr.slice(0, 3); // arr : [1, 2, 3]
arr.slice(3); // arr : [4, 5]
arr.slice(1, -1); // arr : [2, 3, 4]
arr.slice(-3, -2); // arr : [3]


splice()
배열에 원소를 삽입하거나 원소를 제거하려고 할때 사용하는 함수이다. 하지만 본 함수는 slice(), concat() 과는 달리 변경 결과를 반환하는 방식이 아닌 배열 내부에서 수행된다.

// 삭제
var
arr = new Array(1, 2, 3, 4, 5, 6, 7, 8);
arr.splice(4); // [5, 6, 7, 8] 반환, arr : [1, 2 ,3 ,4]
arr.splice(1, 2); // [2, 3] 반환, arr : [1, 4]
arr.splice(1, 1); // [4] 반환, arr : [1]

// 삽입
var arr = new Array(1, 2, 3, 4, 5);
a.splice(2, 0, 'a', 'b'); // []반환, arr : [1, 2, 'a', 'b', 3, 4, 5]
a.splice(2, 2, [1, 2], 3); // ['a', 'b']반환, arr : [1, 2, [1, 2], 3, 4, 5]


push(), pop()
배열을 스택처럼 조작할 수 있다. push() 는 원소의 삽입 pop() 은 원소의 제거를 수행하며, 두 함수 모두 배열의 끝에서 연산을 수행한다. 배열 자체에서 연산이 수행되며 pop() 함수의 경우 제거한 원소를 반환하는 특징이 있다.

var arr = new Array()
arr.push(1, 2); // arr : [1, 2]
arr.pop(); // arr : [1], 2 반환
arr.push([4, 5]); // arr : [1, [4, 5]]
arr.pop(); // arr : [1], [4, 5] 반환
arr.pop(); // arr : [], 1반환

unshift(), shift()
push(), pop() 과는 다르게 배열의 끝이 아닌 맨 앞에서 연산이 이루어진다. unshift() 의 경우 새로운 배열의 길이를, shift() 는 제거한 배열원소를 반환한다.

var arr = new Array();
arr.unshift(1); // arr : [1], 1 반환
arr.unshift(22); // arr : [22, 1], 2 반환
arr.shift(); // arr : [1], 22 반환
arr.unshift(3, [4, 5]); // arr : [3, [4, 5], 1], 3 반환
arr.shift(); // arr : [[4, 5], 1], 3 반환
arr.shift(); // arr : [1], [4, 5] 반환
arr.shift(); // arr : [], 1 반환