返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS 数组sort方法的升序为什么是a-b你知道吗
  • 611
分享到

JS 数组sort方法的升序为什么是a-b你知道吗

2024-04-02 19:04:59 611人浏览 薄情痞子
摘要

简单使用 sort 方法的时候,是按位排序的,比如: var arr = [1, 22, 15, 32, 4, 5] arr.sort()//[1,15,22,32,

简单使用 sort 方法的时候,是按位排序的,比如:

    var arr = [1, 22, 15, 32, 4, 5]
    arr.sort()//[1,15,22,32,4,5]

这样的结果很明显不能满足大多数问题的需求,所以我们可以在调用sort方法的时候,传入一个回调函数,从而改变 sort 方法的排序方式。先放结果,下列两次排序分别为 升序排序 和 降序排序 。

    var arr = [1, 22, 15, 32, 4, 5]
    arr.sort((a, b) => {return a - b}) // 升序排序 [1, 4, 5, 15, 22, 32]
    arr.sort((a, b) => {return b - a}) // 降序排序 [32, 22, 15, 5, 4, 1]

回调函数的格式为(a,b)=> { return xxx },ab为数组中任意两个数

当返回值大于0时,a放在b的后面;

当返回值小于0时,a放在b的前面;

当返回值等于0时,ab位置不改变。

所以,为什么上面返回 a - b 就是升序,返回 b - a 就是降序了呢?

我们可以简单举个例子,类似于高中数学的分类讨论。

当 a>b 时,

a - b > 0  ,排序结果 ===> b,a (升序)

b - a < 0  ,排序结果 ===> a,b (降序)

当 b>a 时,

a - b < 0  ,排序结果 ===> a,b (升序)

b - a > 0  ,排序结果 ===> b,a (降序)

当 a=b 时,

a - b = b - a =0 , 排序结果 ===> 保持不变

由此看出,

无论a>b还是b>a,return a-b 总能得到升序的结果,而 return b-a 总能得到降序的结果。

另外,return a-b / return b - a 只是一种在理解的基础上简便的写法。

如果你还是不能理解,完全可以像这样写,下面也是一个升序排序:

因为返回值>0,把a放在后面,所以a>b时候,返回一个正数。后面理解同理。

    var arr = [1, 22, 15, 32, 4, 5]
    arr.sort((a, b) => {
      if (a > b) return 1;
      else if (a < b) return -1;
      else return 0;
    }); // [1,4,5,15,22,32]

--结束END--

本文标题: JS 数组sort方法的升序为什么是a-b你知道吗

本文链接: https://lsjlt.com/news/139952.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JS 数组sort方法的升序为什么是a-b你知道吗
    简单使用 sort 方法的时候,是按位排序的,比如: var arr = [1, 22, 15, 32, 4, 5] arr.sort()//[1,15,22,32,...
    99+
    2024-04-02
  • JS中sort方法的升序是a-b吗
    本篇内容主要讲解“JS中sort方法的升序是a-b吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS中sort方法的升序是a-b吗”吧!简单使用 sort 方法的时候,是按位排序的,比如:&n...
    99+
    2023-06-29
  • 你知道 Python 编程中最难的算法是什么吗?
    Python 是一种强大的编程语言,被广泛应用于各种领域。尽管 Python 的语法简单易懂,但是在实际编程中,我们经常会遇到各种各样的问题。其中,最令人头疼的问题之一就是算法。 在 Python 编程中,有许多算法都非常难以实现。但是,...
    99+
    2023-07-19
    编程算法 linux django
  • 你知道Java判断字符串是否为数字的多种方式吗
    目录前言异常处理正则表达式使用NumberFormat数字字符外部工具类1.NumberUtils.isParsable2.NumberUtils.isCreatable3.Stri...
    99+
    2024-04-02
  • java中用float时,数字后面加f,这样是为什么你知道吗
    目录Java float 与 double 的区别1、float是单精度浮点数2、java中默认声明的小数是double类型的3、对编程人员来而Java float、double、l...
    99+
    2024-04-02
  • 你知道 ASP 对象在 Linux 中的数据类型是什么吗?
    ASP(Active Server Pages)是一种动态网页技术,它可以让开发人员使用脚本语言(如VBScript、JScript等)来创建动态的网页内容。在Windows操作系统中,ASP对象的数据类型是非常重要的,但是在Linux系统...
    99+
    2023-08-26
    对象 linux 数据类型
  • sql数组排序的方法是什么
    在 SQL 中,对数组进行排序通常使用 ORDER BY 子句。以下是一个简单的示例: SELECT column_name...
    99+
    2024-04-09
    sql
  • js六种数组去重的方法是什么
    这篇文章主要介绍了js六种数组去重的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇js六种数组去重的方法是什么文章都会有所收获,下面我们一起来看看吧。 第一种 ne...
    99+
    2024-04-02
  • js控制台输出数组的方法是什么
    在 JavaScript 中,可以使用 `console.log()` 方法来在控制台输出数组。例如:```javascriptle...
    99+
    2023-08-08
    js
  • java对数组降序排序的方法是什么
    Java中对数组降序排序的方法有多种,以下是两种常用的方法:1. 使用Arrays类的sort方法,并传入一个Comparator对象来指定降序排序的规则。```javaimport java.util.Arrays;import ja...
    99+
    2023-08-11
    java
  • java二维数组排序的方法是什么
    Java中可以使用Arrays类的sort方法对二维数组进行排序。具体步骤如下:1. 导入java.util.Arrays类。```...
    99+
    2023-10-10
    java
  • java数组倒序输出的方法是什么
    Java中数组倒序输出的方法有多种,以下是其中几种常见的方法:1. 使用for循环:```javaint[] arr = {1, 2...
    99+
    2023-09-15
    java
  • python多维数组排序的方法是什么
    Python中可以使用NumPy库来对多维数组进行排序。NumPy中的sort函数可以按照指定的轴对数组进行排序。以下是一个示例:`...
    99+
    2023-10-12
    python
  • php逆序排列数组的方法是什么
    在PHP中,可以使用`array_reverse()`函数来逆序排列数组。该函数将返回一个新的数组,其中的元素按照与原始数...
    99+
    2023-10-12
    php
  • php二维数组排序的方法是什么
    在PHP中,可以使用以下方法对二维数组进行排序:1. 使用array_multisort()函数:该函数可以对多个数组或多维数组进行...
    99+
    2023-08-19
    php
  • php多维数组排序的方法是什么
    有多种方法可以对多维数组进行排序,以下是其中几种常用的方法:1. 使用array_multisort()函数:array_multisort()函数可以同时对多个数组进行排序。可以使用该函数对多维数组进行排序。需要注意的是,要对多维数组...
    99+
    2023-08-11
    php
  • php数组随机排序的方法是什么
    PHP中可以使用shuffle()函数来随机排序数组。示例代码:```php$myArray = array(1, 2, 3, 4,...
    99+
    2023-08-15
    php
  • java逆序输出数组的方法是什么
    可以通过循环遍历数组,从数组末尾开始依次输出数组元素,实现数组的逆序输出操作。具体代码如下: public class Main {...
    99+
    2024-03-07
    java
  • 你是否知道Python和Unix同步的最佳方法?面试官想听什么?
    Python和Unix是两个广泛使用的编程平台,它们在数据科学、软件开发、自动化等领域中都有广泛的应用。在面试中,经常会被问到如何在这两个平台之间同步数据。本文将介绍Python和Unix同步的最佳方法,并提供一些面试官喜欢听到的技巧和代码...
    99+
    2023-06-25
    unix 同步 面试
  • java一维数组逆序输出的方法是什么
    Java中一维数组逆序输出的方法可以使用两个指针,一个指向数组的开头,一个指向数组的末尾,然后交换两个指针指向的元素,依次向中间遍历...
    99+
    2023-09-15
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作