sort排序函数让空值始终排在列表末尾

当值为空时,将其始终放到当前值得后一位即可。在sort函数中,通过传入回调函数始终返回1即可。

var compare = function (prop, sortBy) {
    return function (a, b) {
        if (a[prop] === '' || a[prop] === 'NULL') {
            return 1;
        }
        if(b[prop] === '' || b[prop] === 'NULL') {
            return -1;
        }
        var value1 = parseFloat(a[prop]);
        var value2 = parseFloat(b[prop]);
        return (sortBy > 0) ? value1 - value2 : value2 - value1;
    }
}

prop表示一个属性,sortBy表示是升序还是降序。

如有一个obj对象

var obj = {
    numbers: [1,2,'',3,4,65,4,42,21, '']
};

要对其属性numbers排序,调用方式如下:

obj.sort(compare('numbers'));
如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注