배열 메서드

Development Javascript

배열 메서드

join()

Array.join()메서드는 배열의 모든 원소를 문자열로 변환하고 이어 붙여서 반환한다.
결과로 반환되는 문자열에서 배열의 원소를 구분하기 위해 구분자 문자열이 사용되는데 콤마(,)가 기본값으로 사용된다.

var a = [1, 2, 3]; // 3개의 원소를 가진 배열을 생성한다.
var s = a.join(); // s == "1,2,3"
s = a.join("~"); // s == 1~2~3

Array.join()메서드는 String.split()메서드와 반대되는 기능을 한다. String.split()메서드는 문자열을 조각들로 분리하고 조각들을 원소로 배열을 생성하여 반환하는 기능을 한다.

reverse()

Array.reverse() 메서드는 원소의 순서를 반대로 정렬하여 반환한다. 이것은 배열 속에서 작업이 수행된다.

var a = new Array(1,2,3); // a = [1,2,3]
a.reverse(); // a = [3,2,1]

sort()

Array.sort() 메서드는 배열안의 원소를 정렬한다. 기본적으로 알파벳순으로 정렬함.

var a = new Array("banana", "cherry", "apple");
a.sort(); // a = ["apple", "banana", "cherry"];

sort() 메서드는 기본적으로 문자열 정렬로 되어있는데 번호순으로 정렬하려면 아래와 같이 작성한다.

var a = [33, 4, 1111, 222];
a.sort(function(a,b) {
    return a-b;
});

대소문자 구분없이 알파벳순으로 정렬하려면 우선 전달인자를 모두 소문자로 바꾼 후에(toLowerCase()메서드) 비교작업을 행하면 된다.

concat()

Array.concat() 메서드는 본래 배열 모든 원소에 concat()메서드에서 지정한 전달인자들을 전부 이어붙인 후에 배열을 새롭게 생성하여 반환한다.

var a = [1, 2, 3];
a.concat(4, 5); // [1,2,3,4,5];
a.concat([4,5]); // [1,2,3,4,5];
a.concat([4,5], [6,7]); // [1,2,3,4,5,6,7];
a.concat(4, [5,[6,7]]); // [1,2,3,4,5,[6,7]];

slice()

  • Array.slice() 메서드는 배열의 일부분을 반환한다. 2개의 전달인자를 받는데 처음과 끝의 번호를 명시하면 인덱스 번호의 처음과 끝만을 잘라서 반환한다.
  • 전달인자가 하나만 명시되어 있으면 그 번호위치부터 끝까지 모든 원소를 반환한다.
  • 전달인자를 음수로 명시하면 마지막에서 그 숫자만큼 뒤에서 헤아린 위치로 지정한다. 예를들어 -1이라면 배열의 마지막 원소, -3이라면 배열의 마지막에서 3번째 원소를 가리킨다.
var a = [1,2,3,4,5];
a.slice(0,3); // [1,2,3]을 반환
a.slice(3); // [4,5]를 반환
a.slice(1,-1); // [2,3,4]를 반환
a.slice(-3,-2); // [3]을 반환

splice()

  • Array.splice() 메서드는 배열의 원소를 삽입하거나 제거하려 할 때에 사용된다. slice(), concat()과 달리 새로운 배열을 만들어 반환하지 않는다.
  • 첫번째 전달인자는 배열 상에서 삽입, 삭제작업이 시작하게 될 위치를 지정하며, 두번째 전달인자는 배열에서 삭제할(잘라낼) 원소들의 개수를 지정한다.
var a = [1,2,3,4,5,6,7,8];
a.splice(4); // [5,6,6,7,8]을 반환한다. a는 이제 [1,2,3,4]가 된다.
a.splice(1,2); // [2,3]을 반환한다. a는 이제 [1,4]가 된다.
a.splice(1,1); // [4]를 반환한다. a는 이제 [1]가 된다.

세번째 전달인자부터는 이어붙이는 원소들을 지정하는 사용된다.

var a = [1,2,3,4,5];
a.splice(2,0,'a','b'); // []를 반환한다. a는 이제 [1,2,'a','b',3,4,5]가 된다.
a.splice(2,2,[1,2],3); // ['a','b']를 반환한다. a는 이제 [1,2,[1,2],3,3,4,5]가 된다.

push()

Array.push() 메서드는 원소를 배열의 끝에 이어붙이고 배열의 새로운 길이를 반환한다.

var stack = []; // []
stack.push(1,2); // [1,2] 2반환
stack.push(4,[5,6]); // [1,2,4,[5,6]] 4반환

pop()

Array.pop() 메서드는 배열의 마지막 원소를 제거하고, 배열의 길이를 감소시킨 후, 제거한 원소를 반환한다.

var stack = [1,2,3,4,5]; // []
stack.pop(); // [1,2,3,4] 5반환
stack.pop(); // [1,2,3] 4반환
stack.pop(); // [1,2] 3반환

unshift()와 shift()

unshift()와 shift()메서드는 push()와 pop()메서드와 비슷하게 작동하지만 배열의 맨앞에서 원소를 삽입하고 제거한다는 부분에서 차이점이 있다. 사용방식은 push(), pop()메서드와 동일하다.

toString()과 toLocalString()

toString() 메서드는 배열의 모든 원소를 문자열로 변형하고, 이 문자열들을 콤마(,)로 분리한 목록을 반환한다.

[1,2,3].toString(); // 결과는 '1,2,3'
["a","b","c"].toString(); // 결과는 'a,b,c'
[1, [2,'c']].toString(); // 결과는 '1,2,c'

toLocalString()은 toString()의 지역화된 버전이다.