2014-01-05 4 views
0

I가 다음과 같은 2 차원 배열 값 :자바 스크립트 2D 배열 정렬 제대로 작동하지 내림차순

A 65 
B 7 
C 775,259 
D 893 
E 97 
F 92,260 
G 77,364 
H 7,722 
I 9,240 
J 789,212 

나는 사용자 지정 정렬 기능을 작성한있는 내림차순으로 두 번째 열을 기준으로 정렬하고 싶었 :

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

결과가 순서대로 정렬 된 것처럼 보이지만 문자 비교 사안에있는 것으로 보입니다. 결과는 다음과 같습니다.

E 97 
I 9,240 
F 92,260 
D 893 
J 789,212 
C 775,259 
G 77,364 
H 7,722 
B 7 
A 65 

나는 그것을 정렬하고 있지만 원하는 방식으로 알지 못합니다. 확실하게 숫자에 값을 typecasting 해봤지만 여전히 같은 결과를 얻습니다. 수치로 내림차순으로 정렬하고 싶습니다. 아무도 내가 이것을 어떻게 달성 할 수 있는지 안다?

답변

0

데이터가 여전히 문자열 형식이라고 생각합니다. 따라서 쉼표를 제거하고 문자열 데이터를 이와 같이 정수로 변환 할 수 있습니다.

array.sort(function(a,b) { 
    return parseInt(b[1].replace(",", "")) - parseInt(a[1].replace(",", "")); 
}); 
+0

고맙습니다. Number() 함수로 파싱하여 원하는대로 처리 할 수있었습니다. –

+0

@ 존 준음 당신은 환영합니다 :)이 답을 수락하는 것을 고려해보십시오. http://meta.stackexchange.com/a/5235/235416 :) 같은 문제가있는 사이트를 방문하는 사람들도이 혜택을 볼 수 있습니다. – thefourtheye