2011-11-08 2 views
2

내장 된 JS 함수 array.sort()이 내부적으로 어떻게 작동하는지 아는 사람이 있습니까? 나는 .... 숫자 문자열을 변경 않는 의미 등에서Javascript 정렬 배열 기능 성능

var keys = new Array(); 
keys.sort(); 
+2

btw,'new Array'는 악의적인데,'[]'리터럴 구문을 대신 사용하십시오. – hugomg

+6

알고리즘은 [here] (http://ecma262-5.com/ELS5_HTML.htm#Section_15.4.4.11)로 지정됩니다. 그 외에는 당신이 알고 싶은 것이 무엇인지 모르겠습니다. –

+0

질문에 대답하려면 : 아니오,'.sort'는 요소 값을 변경하지 않습니다 ** ** 입력을 수정하는 함수를 지정하지 않는 한 **. 예 :'keys.sort (function (x, y) {x.moo = 1337; y.cowsay = "bar";})' –

답변

6

MDN docs for sort() : 때 compareFunction가 제공되지 않으면, 요소 사전 편찬에 문자열을 문자열로 변환과 비교으로 분류되어 있습니다

("사전" 또는 전화 번호부, 숫자가 아님) 주문. 예를 들어, "80"사전 식 순서로 "9"이전 을 제공하지만, 어떤 알고리즘이 사용되는로서 this question의 답변을 참조하십시오

80 전에 숫자 정렬 (9)에 제공됩니다.

+0

+1. 이 글을 읽으면 나중에 제작 과정에서 버그를 추적 할 수 없게되었습니다. 너무 나쁜 사람은 대답이 아니라 질문 만 좋아할 수 있습니다. –