JavaScript

자바스크립트 (JavaScript) - 38 : Array 객체, sort()

n.han 2016. 7. 20. 23:06

- Array 객체


1) Array 객체의 생성


Array 객체는 여러 가지 자료를 쉽게 관리할 수 있도록 도와주는 객체이다.


Array 객체의 생성자 함수는 눈 여겨 볼 필요가 있다. 다음은 Array 생성자 함수를 정리한 표이다.


생성자 함수 

설명 

Array() 

빈 배열을 만든다. 

Array(number) 

number만큼의 크기를 가지는 배열을 만든다. 

Array(arg1, arg2...) 

매개변수를 배열로 만든다. 


매개 변수가 없는 생성자 함수의 경우 빈 배열을 만드는 것이 쉽게 이해가 된다.


하지만 두 번째 매개 변수가 하나인 Array 생성자 함수는 자칫 배열 요소가 하나인 배열 객체가 만들어진다고 오해할 여지가 있다.


다음은 Array 생성자 함수로 Array 객체를 만드는 예제이다.




2) Array 객체의 속성


배열은 먼저 몇 개의 요소를 가지고 있는 지 나타내는 length 속성뿐 아니라 다른 많은 속성들이 존재한다.


다음은 Array 객체의 속성을 정리한 표이다. 앞 게시물에서 살펴 본 String 객체와 달리 Array 객체의 메서드는 자기 자신을 직접


바꾸는 경우가 존재한다. pop(), sort() splice() 등의 메서드가 그렇다.


속성 이름 

설명 

length 

배열 요소의 개수 

concat( ) 

매개 변수로 입력한 배열 요소를 모두 합친 배열을 리턴 

join( ) 

배열 안 모든 요소를 합친 문자열 리턴 

slice( ) 

배열 요소의 지정한 부분을 리턴 

pop( ) 

배열의 마지막 요소를 제거하고 리턴 

sort( ) 

배열의 요소를 정렬 

splice( ) 

배열 요소의 지정한 부분을 삭제하고, 삭제한 요소를 리턴 


3) Array의 정렬


sort() 함수는 Array 객체의 요소들을 정렬하는 데 사용한다.


매개 변수가 없는 sort 함수는 요소의 코드 값에 기반하여 오름차순으로 정렬한다.


따라서 var array = [100, 20, 304, 140, 5];와 같은 배열의 sort()한 결과는 100, 140, 20, 304, 5가 된다. 


이는 개발자가 의도하지 않는 정렬 결과일 가능성이 농후하다.


이를 해결하기 위해 비교 함수(compareFunction)을 sort 함수의 매개 변수로 넘겨 줄 수 있다.


sort 함수는 내부적으로 두 값을 비교할 때 넘겨준 비교 함수를 사용하게 된다.


오름차순 정렬 

내림차순 정렬 

function (left, right) {
    return left - right;

function (left, right) {

    return right - left;

}


다음은 sort 함수과 비교 함수를 사용한 예제이다.