У меня есть массив объектов JavaScript, которые содержат описание строки. Я пытаюсь реализовать упрощенный алгоритм сортировки, который выведет случай, вычеркнет 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.
То, что я бы ожидать, чтобы это произошло, что она будет иметь «Тест: [объявления]» появляясь в порядке, а затем «Тестирование: [al]» появляется в порядке.
Я не уверен, как закодировать что-то, что естественным образом породит этот порядок; он не соответствует порядку творения (я думаю, что время создания/порядок «Тест: [a-d]» и «Тестирование: [a-l]» перекрываются, но они были индивидуально созданы в последовательном порядке).
Я получаю похожие, но не идентичные результаты, если я просто установил функцию для сравнения неизмененных описаний с < или >. По крайней мере, в тесте «Тест»/«Тестирование» неизменный лексикографический поиск должен совпадать с результатами поиска, который я хочу. Я немного исказил свой код и не нашел ничего другого, явно искажающего порядок этого массива.
Что-нибудь выпрыгивает как неправильно?
Благодаря,
Вы знаете, что вы можете цеплять так, как это. .LLLECC(). Replace(). Replace() ' – elclanrs