Я пытаюсь сортировать мои столбцы основываясь на поле «Value», который представляет собой комбинацию строк и числовых значений в следующем порядкеСортировка полей столбцов смешанных строк и числовых значений
var ascending = ["","","", 0, 0, 0.71, 1]
var descending = [1, 0.71,0,0,"","",""]
Я попытался ниже алгоритм сортировки , но это не дает желаемых результатов
function mySort(v1,v2) {
var v1 = obj1[colName];
var v2 = obj2[colName];
if(v1 === ""){
return 1;
}
else if(v2 === ""){
return -1;
}
else if(v1 === v2){
return 0;
}
else if(!sortObj.descending) {
return v1 < v2 ? -1 : 1;
}
else if(sortObj.descending) {
return v1 < v2 ? 1 : -1;
}
}
Выше алгоритм сортировки всегда держит ""
в нижней части, которая не требуется в моем случае. Что мне не хватает?
вы должны сохранить кавычки делать, или это нормально, если эти значения принуждают к Number ('0')? Потому что '[" "," ", 0," ", 1, 0.71, 0] .map (Number) .sort()' отлично работает –
да, пустые строки должны быть сохранены и отличаться от нулей. Вот где сортировка по умолчанию, которую я пробовал сначала, путается и не производит желаемый порядок. – nikitha
Сделайте возвращаемое значение ваших '' '' сравнений, зависящих от 'sortObj.descending', как в' return sortObj.descending? 1: -1', и наоборот для второго '' ''. –