프로그래밍/HTML, Javascript, CSS

[자바스크립트] Associative array 정렬하기

포도알77 2019. 3. 11. 08:17


 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을 수행하면서 처리해도 무방하다.



페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사