[JS] Associative array 정렬하기

Javascript에서 Associative array는 C++의 map이나 Python의 dictionary와 같은 데이터 타입이다.

Javascript의 Array의 경우  손쉽게 prototype에 정의된 sort를 사용할 수  있으나, Associative array의 경우 사용자 정의 데이터 타입에 가깝기 때문에 Compare 함수를 만들어 줘야한다.

 

Associative array가 key : value 타입으로 정의되어 있다면, 아래와 같이 만들면 된다.

function aasort(arr){
    var tuples = [];
    for (var key in arr) tuples.push([key, arr[key]]);
    tuples.sort(function(a, b) {
        a = a[1];
        b = b[1];
        return a < b ? -1 : (a > b ? 1 : 0);
    });
	return tuples;
}

만약 그외의 형태라면, tuples.push당시에 해당 값을 넣어주면 된다.

또한 리턴할 필요가없다면, 그냥 함수를 만들지말고 for loop을 수행하면서 처리해도 무방하다.

jcdgods

누구게?

You may also like...

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

Translate »