zoukankan      html  css  js  c++  java
  • 神奇的sort()函数

    今天来谈一谈sort()函数,sort() 方法用于对数组的元素进行排序,用法为arrayObject.sort(sortby);括号中的为可选参数,准确来说应该是一个函数,这个函数用来规定排序方法,不然sort怎么知道你想怎么排,从大到小还是从小到大,你不跟它说它只能按它自己的方法排,如果你对它不熟悉的话,排出来的结果分分钟让你懵逼,需要说明的是,它是在原数组上排序的,不生成副本。

    排序方法:如果你不给它指定方法的话,它会按照字符编码的顺序进行排序,对数字的话排出来基本没什么卵用,所以你要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

    若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

    若 a 等于 b,则返回 0。

    若 a 大于 b,则返回一个大于 0 的值。

    举个简单的例子:

    var arr=[1,5,87,3,9,57,8,9,10];

    arr.sort(function(a,b){return a-b;})

    排出来的顺序就是:1,3,5,8,9,10,57,87.也就是从小到大排,是不是很神奇,如果return b-a的话就从大到小排,这个例子简直是sort的成名函数啊,我第一次看到直接震惊了,当然也可以写的详细一点

    arr.sort(function(a,b){ 

    if(a>b) {return 1; 
    }else{ 
    return -1 

    } .

     

    arrayObject.sort(sortby)
  • 相关阅读:
    LeetCode "Super Ugly Number" !
    LeetCode "Count of Smaller Number After Self"
    LeetCode "Binary Tree Vertical Order"
    LeetCode "Sparse Matrix Multiplication"
    LeetCode "Minimum Height Tree" !!
    HackerRank "The Indian Job"
    HackerRank "Poisonous Plants"
    HackerRank "Kundu and Tree" !!
    LeetCode "Best Time to Buy and Sell Stock with Cooldown" !
    HackerRank "AND xor OR"
  • 原文地址:https://www.cnblogs.com/wanglinmantan/p/5425930.html
Copyright © 2011-2022 走看看