2012-10-29 6 views
0

태그 목록과 개수가 포함 된 배열이 있습니다.2D 자바 스크립트 배열 정렬

tags_array[0] = tags; 
tags_array[1] = tags_count; 

위로 가기 몇 개의 태그를 선택할 수 있도록 개수를 기준으로 정렬을 정렬해야합니다.

답변

1

정렬 비교를 저장하면서 하나를 정렬하십시오. 그런 다음 해당 결과를 사용하여 다른 유형을 정렬합니다.

var res = []; 
tags_count.sort(function(a, b){ return res.push(a=a-b), a; }); 
tags.sort(function(){ return res.shift(); }); 
1

tags 치죠 및 tags_count는 같은 길이의 두 배열은, 내가 먼저 객체의 적절한 배열을 만들 것입니다 :

array.sort(function(a, b) {return a.count-b.count}); 

당신이해야하는 경우 :

var array = []; 
for (var i=0; i<tags_count.length; i++) { 
    array.push({tag:tags[i], count:tags_count[i]}); 
} 

을 그리고 종류의 개수에 그 후에 어레이를 다시 가져 오면

for (var i=0; i<array.length; i++) { 
    tags[i] = array[i].tag; 
    tags_count[i] = array[i].count; 
} 

Demonstration

0

두 태그와 tags_count가 동일한 길이의 배열 (질문의 해당 부분이 너무 명확하지 않음)을 가정하면 다음과 같은 방법이 있습니다.

var tags_array = new Array(); 

for (var i = 0; i < tags.length; i++) 
{ 
    tags_array[i] = {}; 
    tags_array[i].tagName = tags[i]; 
    tags_array[i].tagCount = tags_count[i]; 
} 

tags_array.sort(function(a,b){return b.tagCount-a.tagCount}); 

하나는 어떤 경우 바람직하다, 이와 같이 재기록 대신에 처음부터 이런 방식으로 데이터를 구조화 할 수 있으므로주의해야한다. 마찬가지로, 더 나은 구조는 데이터를 저장하는 데 사용할 수 있지만 이것은 작동합니다.