2012-02-16 2 views
4

로컬 저장소에 저장하는 개체 내에 자바 스크립트 배열 배열이 있습니다. {'0':[[score,time],[score,time]} 형식으로 Phonegap 게임의 최고 점수입니다. 여기서 0은 카테고리입니다. a[1][0]을 사용하여 점수를 볼 수 있습니다. 먼저 높은 점수로 정렬하고 싶습니다.복잡한 배열 배열을 값순으로 정렬

var c={'0':[[100,11],[150,12]}; 
c.sort(function(){ 
    x=a[0]; 
    y=b[0]; 
    return y-x; 
} 

그러나 b [0]은 항상 정의되지 않은 오류를 제공합니다.

저는 Javascript가 처음인데 이것이 학습 경험으로서의 첫 번째 주요 시험입니다. 비록 내가 stackoverflow에 대한 예제의 번호를 보았지만 여전히이 하나를 알아낼 수 없습니다.

+0

여기서 'a'와 'b'는 어떻게 정의 되었습니까? – Jeff

+0

주어진 예제는 구문 상 올바르지 않습니다. 이것은 대괄호가 없습니다.'{ '0': [[score, time], [score, time]}' –

+0

@Jeff a와 b는 기본값 .sort 매개 변수입니다 . 따라서 [0]은 배열의 첫 번째 항목이어야합니까? – Sketchee

답변

7

매개 변수를 비교 함수에 선언해야합니다.

c.sort(function(){ 

c.sort(function(a, b){ 

하고 당신은 지적 "내가하고 있지 않다"정도로

var c={'0':[[100,11],[150,12]]}; 
c[0].sort(function(a, b){ 
    var x=a[0]; 
    var y=b[0]; 
    return y-x; 
}); 

는 다음과 같은 상태에 c 잎 배열에 sort를 호출해야한다 :

{ 
    "0": [ 
    [150, 12], 
    [100, 11] 
    ] 
} 
+0

+1 나는 이것을 처리 할 것이다. :) –

+0

@Mike 신속하고 멋진 응답에 감사드립니다! 나는 여기와 구글에서 며칠 동안 예제를보고 있었다 ... 나는 함수에서 매개 변수'(a, b) '를 가져야한다는 것을 몰랐다. 그냥 코드를 추가하고 내 점수는 마침내 올바른 순서에 있습니다! – Sketchee

0
function largestOfFour(arr) { 

    for(var x = 0; x < arr.length; x++){ 
     arr[x] = arr[x].sort(function(a,b){ 
      return b - a; 
     }); 
    } 

    return arr; 
} 

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);