语法

array.sort(sortfunction)

参数 Values

参数 描述
sortfunction 可选。规定排序顺序。必须是函数。

返回值

Type 描述
Array 对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

1.对数组进行排序

var fruits = ["Banana", "Orange", "Apple", "Mango","PB","PA","PBC",,"PBA","pbc","a"];
fruits.sort();
console.log(fruits)

数组反转:

 fruits.reverse();console.log(fruits)

2.对数字进行排序

默认地,sort() 函数按照字符串顺序对值进行排序(即按照UniCode码的顺序进行排序)。

该函数很适合字符串("Apple" 会排在 "Banana" 之前)。

不过,如果数字按照字符串来排序,则 "25" 大于 "100",因为 "2" 大于 "1"。

正因如此,sort() 方法在对数值排序时会产生不正确的结果。

我们通过一个比值函数来修正此问题:

  • 按升序排序

      var nums = [1,3,8,1314,520,125,888,999,666]nums.sort(function (a,b) {return a-b})console.log(nums)

  • 按降序排序

     var nums = [1,3,8,1314,520,125,888,999,666]nums.sort(function (a,b) {return b-a})console.log(nums)

3.比值函数

比较函数的目的是定义另一种排序顺序。

比较函数应该返回一个负,零或正值,这取决于参数:

function(a, b){return a-b}

当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。

实例:

当比较 40 和 100 时,sort() 方法会调用比较函数 function(40,100)。

该函数计算 40-100,然后返回 -60(负值)。

排序函数将把 40 排序为比 100 更低的值。

可以使用下面的代码片段来测试数值和字母排序:

var points1 = [40, 100, 1, 5, 25, 10];var points2 = [40, 100, 1, 5, 25, 10];function soft1() {points1.sort();console.log("字母顺序排序")console.log(points1);}soft1()function soft2() {console.log("数字顺序排序")points2.sort(function(a, b){return a - b});console.log(points2);}soft2()

JavaScript之Soft排序相关推荐

  1. JavaScript中的排序算法

    JavaScript中的排序算法 一.评判算法的标准 二.算法的分类 三.经典排序算法的性能指标 1.冒泡排序 2.选择排序 3.插入排序 4.Shell希尔排序(分组插入排序) 5.快速排序 6.归 ...

  2. javascript写各种排序算法

    在知乎上看到这个题目,就自己写了一下,在这里附上链接,里面有各种排序的动态图,非常形象直观,有助于新手对排序算法理解,链接:常见排序算法之JavaScript实现 首先各种排序算法都会用到的交换函数: ...

  3. ULID 与 UUID:用于 JavaScript 的可排序随机 ID 生成器

    UUID 是软件开发中最常用的通用标识符之一.然而,在过去的几年里,新的替代品挑战了它的存在. 其中,ULID 是领先的竞争对手之一,因为它提供可排序的唯一 ID. 在本文中,我将通过示例讨论 ULI ...

  4. 【JavaScript】 sort排序

    排序方法 插入排序:几个数排好序,再来一个数和排好序的最后一个数比,再与前一个比,-,插入. 二分插入排序:几个数排好序,再来一个数和中间数比,再与左/右的中间数比,-,插入. 归并排序:每两个排序, ...

  5. JavaScript 中常见排序算法详解

    十大经典算法 一张图概括: 名词解释: n:数据规模 k:"桶"的个数 In-place:占用常数内存,不占用额外内存 Out-place:占用额外内存 稳定性:排序后2个相等键值 ...

  6. JavaScript算法——桶排序

    一.桶排序的原理 桶排序是计数排序的升级版.它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定.思路大致是, 设置一个定量的数组当作空桶: 遍历输入数据,并且把数据一个一个放到对应的桶里去 ...

  7. JavaScript Switc希尔排序

    算法详解: 希尔排序的基本思想: (1)选择一个希尔增量序列t1,t2,-,tk,(递减序列,tk=1) (2)按增量序列个数k,对序列进行k 趟排序, 每趟排序,根据对应的增量ti,将待排序列分割成 ...

  8. 最近学的用javascript给datagrid排序

    比较简单的排序方法,对于小型的排序,在客户端完成就可,麻烦客户端,以来刷新麻烦来回传数据,二来写代码也容易出错. 调用方法:给datagrid的表头的各个列标题添加onclick事件,然后调用sort ...

  9. JavaScript 几种排序算法实现(冒泡、选择、插入、归并、快速排序)

    1. 冒泡 // 冒泡 - 每次循环, 将两两中偏大的元素移动到右边 for (let i = 0; i < arr.length - 1; i++) {for (let j = i; j &l ...

最新文章

  1. linux error log 换行,日志提示
  2. Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定)
  3. PXC管理数据库服务器(引擎)
  4. hihocoder 第113周 Fibonacci(动态规划)
  5. 4.有关日期格式属性修改常识,v$nls_parameters,between and,查询指定部门的员工信息,in和null,like模糊查询,order by后面可以跟:列名、表达式、别名、序号
  6. Linux系统集群架构线上项目配置实战(一)
  7. hdfs中与file数组类似的数组_Chapter05 Java中的数组
  8. 前端学习(2463):vue中 关于$emit的用法
  9. 从 Storm 迁移到 Flink,美团外卖实时数仓建设实践
  10. 面试官:讲一下Jvm中如何判断对象的生死?
  11. 吴恩达神经网络和深度学习-学习笔记-12-RMSprop算法
  12. 【清华大学-腾讯】关系提取综述,Review and Outlook for Relation Extraction
  13. android app 架构设计_这些冷门的App,好用到为你打开新世界大门
  14. android 如何启动nfc卡模拟模式_用手机模拟小区业主卡,出入更加便捷,免去带卡的烦恼,(限安卓)...
  15. 数字带通传输系统matlab仿真实验,基于MATLAB的数字带通传输系统设计
  16. 阿里矢量库图标在线链接的使用方法,引入,改变大小与颜色
  17. 黑客是如何发现女朋友出轨的
  18. 易班php,易班PHP-SDK开发
  19. 矩阵的LU分解——MATLAB实现
  20. php公众号多域名授权,多个网站用一个微信公众号授权域名的坑

热门文章

  1. asp后缀的文件如何运行
  2. 【基础算法训练】——滑动窗口
  3. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十五:SDHC模块
  4. C# 学习随笔 获取计算机硬件参数,包括(CPU ID,MAC,磁盘ID和IP地址)
  5. python个人总结(二)
  6. js时间戳转换年月日
  7. 探秘Linux特殊设备文件:(/dev/null,/dev/zero,/dev/random,/dev/urandom等)
  8. java nio attachment_7. 彤哥说netty系列之Java NIO核心组件之Selector
  9. 设为主页代码及添加到收藏夹代码大全 1
  10. 【Linux学习-入门推荐】