다음과 같이 값과 텍스트로 선택 옵션을 정렬하려고합니다. 텍스트는 특수 문자를 가질 수 있으므로 정렬해야합니다. 그러나 일부 특수 문자가 알파벳 뒤에 오는 것을 발견했습니다. 모든 특수 문자를 먼저 입력 한 다음 알파벳을 입력하고 싶습니다.자바 스크립트 배열 정렬
c = [["#test","#test"], ["?test", "?test"], ["test", "test"], ["TEst", "TEst"], ["]test", "]test"]]
>>> c.sort()
[["#test", "#test"], ["?test", "?test"], ["TEst", "TEst"], ["]test", "]test"], ["test", "test"]]
문제는 'TEst'인 것 같습니다.
또 다른 간단한 예 :
cool = ['#new','?new','[new',']new','NEw','&new','cool','ind']
["#new", "?new", "[new", "]new", "NEw", "&new", "cool", "ind"]
cool.sort()
["#new", "&new", "?new", "NEw", "[new", "]new", "cool", "ind"]
이 기본 정렬에서 전혀 차이가 없습니다 (jsfiddle 정말 테스트하지). 그리고 나는'a'와'b'가 모두 ASCII 49 이하일 때 정렬 순서가 불확실 할 것이라고 생각합니다. – Stuart
@ 스튜어트 : 분명히 원하는 결과를 얻기 위해 그의 코드를 향상시키는 방법을 OP에 제안했습니다. 모든 요구 사항에 맞게 비교 기능을 변경하는 것은 영업에 달려 있습니다. – zerkms
충분히 공정하고, 그냥 코드에 대해 오해하지 않았는지 확인하고 싶었습니다. – Stuart