2016-03-02 97 views
2

我有2个用于排序列的函数,用“%”列对列进行排序,但如果使用字母而不是“%”,则按字母顺序排序。用数字和字符串对列进行排序

main.js我用这个选择的选项,paint2作品,但paint1没有作品:

var func = (upti == 'T') ? paint1 : paint2; 
[...] 
str += '<td>' + func(value[firstvalue]) + '</td>'; 

而在其他文件中我有以下功能:

function paint1(tmp) { 
    if (tmp == null || tmp == "null" || tmp == "-") { 
    return "-"; 
    } else if (tmp == "Out") { 
    return tmp; 
    } else { 
    tmp = (+tmp).toFixed(1);  
    return "<span>" + tmp + "s</span>"; 
    } 
} 

function paint2(disp) { 
    if (disp == null || disp == "null" || disp == "-") { 
    return "-"; 
    } else if (disp == "Out") { 
    return disp; 
    } else if (disp == "100") { 
    disp = parseFloat(disp); 
    return disp.toFixed(1) + "<span>%</span>"; 
    } else { 
    disp = parseFloat(disp); 
    return disp.toFixed(2) + "<span>%</span>"; 
    } 
} 
+4

please添加一些示例数据进行排序 - 以及他们想要的结果。 –

+0

没有问题,你试过了吗?它使这些事情变得轻而易举 – Gary

+1

@Gary你想用浅滩杀蚊子吗? –

回答

0

创建一个映射表来代替带百分号的字母:

function replacer(match, offset, fullstring) 
    { 
    /* Store position of replacement */ 
    replacer[match] = offset; 
    return "%"; 
    } 

function sorter(seq) 
    { 
    var result = seq.replace(/[A-Za-z]/g, replacer); 
    return result; 
    } 
相关问题