资讯专栏INFORMATION COLUMN

关于javascript sort()排序的一点理解

goji / 3063人阅读

摘要:要实现这一点,首先应把数组的元素都转换成字符串如有必要,以便进行比较。比较函数应该具有两个参数和,其返回值如下若小于,在排序后的数组中应该出现在之前,则返回一个小于的值。

sort()排序的原理

最近在leetcode刷题的时候遇到一个排序问题之前一直都忽略了sort排序的原理,让我们看下w3c对于sort()的说明:
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
这样就可以解释为什么[0,1,5,10,8]的升序排列会是[0,1,10,5,8]

sort()排序参数的使用

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

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

若 a 等于 b,则返回 0。

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

所以得出如果想要升序排列的话通过a-b就可以实现 sort((a,b)=>a-b),反序也可以通过这个来做到:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84075.html

相关文章

  • JavaScript中的Array.prototype.sort方法详解

    摘要:方法可以接受一个可选的参数,比较回调函数。方法会修改原本数组输出如上,在调用方法后,自身数组被修改。对于长数组会使用快速排序,而快速排序一般是不稳定的。所以方法返回的数组永远是该方法认为的升序数组。 前几天在某公司面试的时候被问到关于这个方法的默认值的问题(然而面试官跟我说的其实是错的,当场我还不够底气去反驳)。突然发现对这个方法的了解还不够,因此回来查了资料,看了v8引擎的实现和EC...

    Snailclimb 评论0 收藏0
  • JavaScript 处理数组函数总结

    摘要:从而将传入的数组误判为非数组。返回值把指定的值添加到数组后的新长度。方法用于删除并返回数组的最后一个元素返回值的最后一个元素。如果数组已经为空,则不改变数组,并返回值。 JavaScript的array可以包含任意数据类型,并通过索引来访问每个元素。 1、检测数组:instanceof、slice()、Array.isArray() 检测一个对象是不是数组的三种方法:(1)方法一:i...

    instein 评论0 收藏0
  • JavaScript深入浅出第2课:函数是一等公民是什么意思呢?

    摘要:函数是一等公民,是什么意思呢我来与大家探讨一下,抛砖引玉。对于来说,函数可以赋值给变量,也可以作为函数参数,还可以作为函数返回值,因此中函数是一等公民。也就是说,函数为第一公民是函数式编程的必要条件。 摘要: 听起来很炫酷的一等公民是啥? 《JavaScript深入浅出》系列: JavaScript深入浅出第1课:箭头函数中的this究竟是什么鬼? JavaScript深入浅出第2课...

    wmui 评论0 收藏0
  • JavasScript重难点知识

    摘要:忍者级别的函数操作对于什么是匿名函数,这里就不做过多介绍了。我们需要知道的是,对于而言,匿名函数是一个很重要且具有逻辑性的特性。通常,匿名函数的使用情况是创建一个供以后使用的函数。 JS 中的递归 递归, 递归基础, 斐波那契数列, 使用递归方式深拷贝, 自定义事件添加 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果...

    forsigner 评论0 收藏0
  • [译]正确使用 sort() 方法

    摘要:方法参数该有一个可选参数,允许此方法帮助对内容进行排序。例如,在非常大的数组中,可以使用新的方法来获得更有效的排序函数,而不是使用。在浏览器和节点中以全局对象的形式呈现,并具有广泛的支持包括。 英文原文: 《Usar correctamente el método sort()》 注意:内容有做精简和调整。 在过去的几个星期里,我们在不同的团队中看到,一般来说都没有使用 Array...

    dreambei 评论0 收藏0

发表评论

0条评论

goji

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<