zoukankan      html  css  js  c++  java
  • js数组之sort()函数

    一般我们使用sort函数进行数组的排序,sort()方法有一个可选参数,是用来确定元素顺序的函数。如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序。如:

    var arr = ["a", "b", "A", "B"];
    arr.sort();
    console.log(arr);//["A", "B", "a", "b"]
    

    如果数组元素是数字呢,结果会是怎样?

    var arr = [15, 8, 25, 3];
    arr.sort();
    console.log(arr);//[15, 25, 3, 8]
    

        结果是 [15, 25, 3, 8] 。其实,sort方法会调用每个数组项的toString()方法,得到字符串,然后再对得到的字符串进行排序。虽然数值15比3大,但在进行字符串比较时"15"则排在"3"前面。显然,这种结果不是我们想要的,这时,sort()方法的参数就起到了作用,我们把这个参数叫做比较函数。比较函数接收两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回0,如果第一个参数应该位于第二个之后则返回一个正数。例子:

    var arr = [23, 9, 4, 78, 3];
    arr.sort(function(a,b){
        return b-a;
    });
    console.log(arr); // [78,23,9,4,3]
    

     a,b表示数组中的任意两个元素,若return > 0 b前a后;reutrn < 0 a前b后;a=b时存在浏览器兼容。a-b输出从小到大排序,b-a输出从大到小排序。

     

     

     

  • 相关阅读:
    [HAOI2015] 数组游戏
    [HAOI2015] 数字串拆分
    [HAOI2015] 按位或
    [HAOI2009] 毛毛虫
    [HAOI2009] 巧克力
    [HAOI2011] Problem C
    [HAOI2011] 防线修建
    [HAOI2011] Problem A
    [HAOI2010] 最长公共子序列
    [HAOI2010] 工厂选址
  • 原文地址:https://www.cnblogs.com/daikefeng/p/6678795.html
Copyright © 2011-2022 走看看