문제

나는 배열을 자바스크립트 objectss 이 있는 문자열을 설명합니다.나를 구현하기 위해 노력하고 단순화된 정렬 알고리즘을 드롭 케이스,스트립 HTML 태그,및 다음 스트립 모든 것 그러나 문자와 숫자가 있습니다.나이:

DASHBOARD.todo_entries.sort(function(first, second)
  {
  var first_workbench = first.description.toLowerCase();
  var second_workbench = second.description.toLowerCase();
  first_workbench = first_workbench.replace(/<.*?>/, '');
  second_workbench = second_workbench.replace(/<.*?>/, '');
  first_workbench = first_workbench.replace(/[^_\w]/, '');
  second_workbench = second_workbench.replace(/[^_\w]/, '');
  console.log('"' + first_workbench + '", "' + second_workbench + '"');
  return (first_workbench > second_workbench);
  });

현재는 지속적으로 생성하는 정렬 순서와 설명:

Testing: d.
Testing: e.
Test: a.
Testing: f.
Test: c.
Test: b.
Testing: g.
Testing: b.
Testing: a.
Test: d.
Testing: c.
Testing: h.
Testing: i.
Testing: j.
Testing: k.
Testing: l.

나는 무엇을 기대하여 일어날 것입니다"테스트:[a-d]"나타나기 위해서,그리고"테스트:[a-l]"나타나는 순서입니다.

나는 확실하지 않은 방법 코드는 것이 뭔가 자연적으로 생성하는 이 순서그것은 일치하지 않은 자신의 순서의 창조(고 생각합성 번/의 순서"Test:[a-d]"및"테스트:[a-l]"겹쳐,하지만 그들은 개별적으로 만들에서 순차적으).

나는 비슷하지만,동일하지 않은 결과는 경우 나는 그냥 기능을 설정 비교한 설명을 변경되지 않은 중 < 나>.적어도 내에서"시험"/"시험",변경되지 않은 사전 순 검색에 맞춰 검색 결과를 제가 원하는 것입니다.나는 검색을 통해 조금 내 코드와 아무것도 발견하지 않은 다른 분명히 훼손의 주문을 배열입니다.

아무것도 점프로 잘못입니까?

감사합니다,

도움이 되었습니까?

해결책

JS Array.sort 방법은 비교 기능 cmp(a, b) 는 반환해야 합니다 1 또는 다른 긍정적인 번호(있을 나타내는 a < b), -1 또는 다른 부정적인 번호(있을 나타내는 b > a다),또는 0 (나타내는 값을 가)참조 반 문서.당신 부울 값을 반환합,효과적으로만 10, 다,그래서 그것을 정렬되지 않습니다.

return first_workbench === second_workbench ? 0 :
    first_workbench > second_workbench ? 1 : -1;

또는 이와 유사한.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top