美文网首页
前端如何给数组元素按降序排序

前端如何给数组元素按降序排序

作者: 小遁哥 | 来源:发表于2020-08-15 23:00 被阅读0次

众所周知,sort 方法默认是为字符串排序的,

['a','c','b','e','d'].sort()

结果为

 ["a", "b", "c", "d", "e"]

如果想要降序该怎么做呢,这时候你要用到字符串的localeCompare方法

['a','c','b','e','d'].sort((a,b)=>b.localeCompare(a))

结果为

 ["e", "d", "c", "b", "a"]

不知道你是否会在b.localeCompare(a)) 还是 a.localeCompare(b)) 上纠结,所幸,可供的选择不多,死记硬背完全可行,比如

a在前面是升序,b在前面是降序

对于数字也是这样的

[1,5,6,2].sort((a,b)=>a-b)
(4) [1, 2, 5, 6]
[1,5,6,2].sort((a,b)=>b-a)
(4) [6, 5, 2, 1]

对于sort方法

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

看一个冒泡排序的实现

    for (let i = 0; i < arr.length; i++) {
      for (let j = i; j < arr.length; j++) {
        if (arr[i] > arr[j]) {
          [arr[i], arr[j]] = [arr[j], arr[i]];
        }
      }
    }

sort 方法只是将arr[i] > arr[i + 1] 还是 arr[i] < arr[i + 1] 的决定权交给了我们

至于sort 方法的实现就更加有趣的,并不是简单的快排,会根据数组的长度、递归的深度等选择不同方式,记得之前写过一篇关于快排的文章 https://www.jianshu.com/p/7186c0b2d23f,相比之下就要简陋的多了。

相关文章

  • 前端如何给数组元素按降序排序

    众所周知,sort 方法默认是为字符串排序的, 结果为 如果想要降序该怎么做呢,这时候你要用到字符串的locale...

  • 从小到大,从大到小,PHP 数组排序

    数组排序:数组中的元素能够以字母或数字顺序进行升序或降序排序。 PHP - 数组的排序函数 sort() - 以升...

  • PHP之数组键值排序

    数组中的元素能够以“字母或数字顺序”进行“升序或降序”排序 PHP 数组排序函数: sort() - 以升序对数组...

  • 练习: 输入整型数组和排序标识,对其元素按照升序或降序进行排序

    说明: 描述:输入整型数组和排序标识,对其元素按照升序或降序进行排序原型:void sortIntegerArra...

  • 9. 进阶算法之"搜索排序"

    简介 排序: 把某个乱序的数组变成升序或者降序的数组 搜索:找出数组中某个元素的下标 JS中的排序和搜索 JS中的...

  • JavaScript中数组和字符串常用方法总结

    1,数组方法 判断数组方法 添加删除数组元素 数组排序 注意:sort( )方法需要传入参数来设置升序,降序的排列...

  • 2018-01-14

    php数组排序 sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据...

  • MySQL 排序

    排序查询 查询所有学生记录,按年龄升序排序 查询所有学生记录,按年龄降序排序 查询所有雇员,按月薪降序排序,如果月...

  • Java 数据结构

    冒泡排序,把数组里大小排序混乱的元素重新排序 插入排序,按元素大小从左往右排序 选择排序,依次在数组中找出最小的元...

  • 数组相关处理函数2

    冒泡排序法 快速排序法 数组排序函数 ksort 对数组按照键名排序 krsort 键名降序排序 asort 对数...

网友评论

      本文标题:前端如何给数组元素按降序排序

      本文链接:https://www.haomeiwen.com/subject/hejzdktx.html