2010-08-19 11 views
3

배열이 있는데 이름이 아닌 숫자 필드로 정렬하고 싶습니다.두 번째 값으로 2 차원 배열 정렬

var showIt = [ 
    ["nuCycleDate",19561100], 
    ["ndCycleDate",19460700], 
    ["neCycleDate",0], 
    ["nlCycleDate",0] 
]; 

감사

답변

17

당신은 비교 기능 sort를 제공 할 수 있습니다.

showIt.sort(function(a,b){ 
    return a[1] - b[1]; 
}); 

ab는 배열에서 항목입니다. sort는 0보다 크거나 0보다 크거나 0보다 작은 반환 값을 예상합니다. 첫 번째는 ab 앞에오고, 0이면 두 번째가 같음을 나타냅니다. 마지막 옵션은 b을 먼저 의미합니다.

+0

감사합니다. – Noe

1

This site은 임시 변수에 할당하지 않고 인수 사용을 권장합니다. 대신 다음을 시도하십시오.

showIt.sort(function(a, b) { 
    var x = a[1]; 
    var y = b[1]; 
    return x - y; 
}); 
+3

그 사이트는 함수 내에서 정렬 콜백 매개 변수 이름을 재사용하는 것에 대해 말하는 것 같습니다. 여기에'a [1] - b [1]'을 사용하지 않을 이유가 없습니다. –

+0

아, 좋은 지적이야. 콜백에는 할당이 없으므로 죄송합니다. –