zoukankan      html  css  js  c++  java
  • 关于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).都没问题。

     

  • 相关阅读:
    Python基础知识篇
    Django框架
    Django REST Framework框架
    NoSQL
    MySQL恩恩怨怨
    Python奇技淫巧
    一文搞定Flask
    数据结构与算法(Python)
    学习数据分析
    项目杂项
  • 原文地址:https://www.cnblogs.com/zzcflying/p/2511648.html
Copyright © 2011-2022 走看看