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

该文章由 leevare 发布于 ,归类于 Javascript

当值为空时,将其始终放到当前值得后一位即可。在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'));

如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!

相关文章:

说点什么

avatar
300
  Subscribe  
提醒