• 关于javascript的sort()函数


      今天遇见一个问题。

      var arr = [3,1,16,34,7,8];

      arr.sort();

      返回结果是[1,16,3,34,7,8]。和我想要取得的结果不同。

      看了下接口说明。

      arrayObject.sort(sortby).

      sortby必须是函数。  

      如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

      如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

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

      若 a 等于 b,则返回 0。

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

      看完后,用个函数试下。

      升序

      function ascend(a, b) {

        return a-b;

      }

      降序 

      function desc(a, b) {

        return b-a;

      }

      测试了下,升序arr.sort(ascend)和降序arr.sort(desc).都没问题。

     

  • 相关阅读:
    Flink DataStream API
    Flink Time
    Flink Catalog
    Flink window
    Flink如何处理update数据
    Flink on Yarn和k8s
    nginx http转发成https导致post请求变为get请求
    static和extern
    4.曲率计算
    1.距离地图和路径居中
  • 原文地址:https://www.cnblogs.com/zzcflying/p/2511648.html
Copyright © 2020-2023  润新知