Если у меня есть массив, как:Javascript сортировки() массив смешанного типа данных
["23", "765", "sfasf", "2.3E-3", "2.3cE-3"]
Как я могу заказать его так числа (десятичные, поплавки или научной нотации) упорядочены по возрастанию и после того, как те строки, которые Арен (например, «sfasf» или «2.3cE-3»)?
Ожидаемый порядок примера массива:
["2.3E-3", "23", "765", "2.3cE-3", "sfasf"]
Порядок строк, которые не могут быть преобразованы в числа не имеет значения, они просто должны быть в конце.
Решение от ответа:
$scope.cleanAndOrder = function(dbo, fieldName) {
var textareaId = "textarea"+"_"+fieldName ;
var textarea= document.getElementById(textareaId);
//(+b && (+a!=a)) : return true (converted to 1) if b is a number and a isn't
//(a-b) : then compare the numbers if the first comparaison isn't enough
textarea.value = dbo.attributes[fieldName].sort(function(a,b){ return (+b && !+a) || (a-b) }).join("\n");
var lines = textarea.value.split("\n");
textarea.setAttribute('rows', lines.length +2);
}
Используйте вот-тире или знак подчеркивания :) –
Спасибо за комментарий вы могли бы указать на определенную функцию, пожалуйста? –
Вам нужен конкретный порядок для строк? –