Array.sort ()가 숫자를 올바르게 정렬하지 않음 [중복]
이 질문에 이미 답변이 있습니다.
- 정수 배열을 올바르게 정렬하는 방법 20 개 답변
Chrome 14 및 Firefox 5 (다른 브라우저를 테스트하지 않음)에서 다음 코드는 숫자를 올바르게 정렬하지 않습니다.
<script>
a = new Array();
a.push(10);
a.push(60);
a.push(20);
a.push(30);
a.push(100);
document.write(a.sort())
</script>
10,100,20,30,60을 반환합니다.
나는 다른 숫자를 시도해 보았고 항상 0이없는 것처럼 작동하고 그렇지 않으면 숫자를 올바르게 정렬합니다. 왜 그럴까요?
나는 다른 숫자를 시도해 보았고 항상 0이없는 것처럼 작동하고 그렇지 않으면 숫자를 올바르게 정렬합니다. 왜 그럴까요?
Javascript의 기본 정렬 동작 인 사전 식 정렬 (예 : 객체를 문자열로 변환하고 사전 순서로 정렬)을 얻고 있습니다.
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort
array.sort([compareFunction])
매개 변수
compareFunction
정렬 순서를 정의하는 함수를 지정합니다. 생략하면 배열은 각 요소의 문자열 변환에 따라 사전 순으로 (사전 순서대로) 정렬됩니다.
ECMAscript 사양 (일반 자바 스크립트에 대한 표준 참조), ECMA-262, 3rd ed. , 섹션 15.4.4.11, 기본 정렬 순서는 사전에 나와 있지는 않지만 필요한 경우 주어진 비교 함수를 호출하는 개념적 정렬 함수에 대한 단계를 제공하고 그렇지 않으면 문자열로 변환 할 때 인수를 비교합니다. :
13. If the argument comparefn is undefined, go to step 16.
14. Call comparefn with arguments x and y.
15. Return Result(14).
16. Call ToString(x).
17. Call ToString(y).
18. If Result(16) < Result(17), return −1.
19. If Result(16) > Result(17), return 1.
20. Return +0.
a.sort(function(a,b){return a - b})
혼란 스러울 수 있습니다 .... 이 링크를 확인 하세요.
Javascript에서 배열의 기본 정렬은 알파벳순 검색 입니다. 숫자 정렬을 원하면 다음과 같이 시도하십시오.
var a = [ 1, 100, 50, 2, 5];
a.sort(function(a,b) { return a - b; });
정렬 기능을 사용할 수 있습니다.
var myarray=[25, 8, 7, 41]
myarray.sort( function(a,b) { return b - a; } );
// 7 8 25 41
Look at http://www.javascriptkit.com/javatutors/arraysort.shtml
try this:
a = new Array();
a.push(10);
a.push(60);
a.push(20);
a.push(30);
a.push(100);
a.sort(Test)
document.write(a);
function Test(a,b)
{
return a > b ? true : false;
}
참고URL : https://stackoverflow.com/questions/7000851/array-sort-doesnt-sort-numbers-correctly
'development' 카테고리의 다른 글
Java에서 다른 형식으로 문자열을 날짜로 구문 분석 (0) | 2020.09.15 |
---|---|
@Autowired 빈은 다른 빈의 생성자에서 참조 될 때 null입니다. (0) | 2020.09.15 |
유닉스 차이점 좌우 결과? (0) | 2020.09.15 |
콘솔 출력을 파일로 미러링 (0) | 2020.09.15 |
다른 변수와 비교하기 전에 문자열을 변수에 할당해야합니까? (0) | 2020.09.15 |