[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 »