TS array.sort() 排序不准

Posted 张永峰的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TS array.sort() 排序不准相关的知识,希望对你有一定的参考价值。

问题

var arr = [10, 2, 1, 20];
console.log(arr.sort());    // [1, 10, 2, 20]

输出结果完全坑爹,查询发现,该排序功能为:按ASCLL码排序

解决方法

var arr = [10, 2, 1, 20];
console.log(arr.sort((a, b) => b - a)); //1,2,10,20

javascript 排序数组列表#js #array #sort

    var by = function(name) {
        return function(o, p) {
            var a, b;
            if (typeof o === 'object' && typeof p === 'object' && o && p) {
                a = o[name];
                b = p[name];
                if (a === b) {
                    return 0;
                }
                if (typeof a === typeof b) {
                    return a < b ? -1 : 1;
                } else {
                    throw {
                        name: 'Error',
                        message: 'Expected an object when sorting by ' + name
                    }
                }
            }
        }
    }
    
    
    arraylist.sort(by('[name]'))

以上是关于TS array.sort() 排序不准的主要内容,如果未能解决你的问题,请参考以下文章

关于Java中Array.sort()排序原理,越详细越好!

数组Array.sort()排序的方法

.NET 排序 Array.Sort<T; 实现分析

.NET 排序 Array.Sort<T; 实现分析

php 多维数组 array sort 排序 :array_multisort

JavaScript中数组Array.sort()排序方法详解