무엇이 잘못으로 이런 일상적인?
-
22-12-2019 - |
문제
나는 배열을 자바스크립트 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
(나타내는 값을 가)참조 반 문서.당신 부울 값을 반환합,효과적으로만 1
나 0
, 다,그래서 그것을 정렬되지 않습니다.
도
return first_workbench === second_workbench ? 0 :
first_workbench > second_workbench ? 1 : -1;
또는 이와 유사한.