为啥sort((a,b) => a - b ? 1 : -1 )可以对时间戳排序,"sort((a,b) => a - b ? 1 : -1 )"表示啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥sort((a,b) => a - b ? 1 : -1 )可以对时间戳排序,"sort((a,b) => a - b ? 1 : -1 )"表示啥意思相关的知识,希望对你有一定的参考价值。

sort方法会循环取出数组的数值进行两两对比,如果前一个数(a)比后一个数(b)大,就把两个数对调,如果相等或a<b,就不变,这样当比较完毕后,数组中的元素就按由小到大的顺序重新排列了。
其实可以简写为:
sort((a,b)=>a-b);
如果按由大到小的顺序排列,则是
sort((a,b)=>b-a);
参考技术A sort 是 js 的数组排序函数, 参数是一个回调函数, 回调函数有2个参数, 分别是当前数组元素与其前一个数组元素, 也就是你代码里的a 和 b, 数组的返回值决定了是否要交换 a 和 b 在数组中的顺序, 返回值小于0就表示要交换 a 和 b 在数组中的顺序, 否则不交换顺序

Json——sort

1、a-b升序

<script>
    var arr = [2, 3, 1, 5, 0];
    function compare(a, b) {
        return a - b;
    }
    console.log(arr.sort(compare));//(5) [0, 1, 2, 3, 5]
</script>

2、b-a降序

<script>
    var arr = [2, 3, 1, 5, 0];
    function compare(a, b) {
        return b - a;
    }
    console.log(arr.sort(compare));//(5) [5, 3, 2, 1, 0]
</script>

3、返回值:1升序,-1降序

<script>
    var arr = [2, 3, 1, 5, 0];
    function compare(a, b) {
        if (a > b) {
            return -1;
        } else if (a < b) {
            return 1;
        } else {
            return 0;
        }
    }
    console.log(arr.sort(compare));//(5) [5, 3, 2, 1, 0]
</script>

 

以上是关于为啥sort((a,b) => a - b ? 1 : -1 )可以对时间戳排序,"sort((a,b) => a - b ? 1 : -1 )"表示啥意思的主要内容,如果未能解决你的问题,请参考以下文章

javascript sort方法和比较函数

js sort() 数字排序 不太理解

Python学习之sort与sorted

sort

js sort()方法改变原数组了怎么办

JS - Array.prototype.sort(compare)