Array.sort

作者: anddju | 来源:发表于2019-06-29 17:31 被阅读0次

数组排序函数,经常使用。(抱歉,我没用过,如果你不问,我是想不到排序用这个函数的 。工作中用到数组排序函数时,都是用封装好的排序函数)

不过。。为啥会想到这个函数,是因为群里一个人的面试题是对一个数组进行随机排序

实现方法:

aa.sort(()=>0.5-Math.random())
// 解释:  Math.random()生成0~1 的数, 0.5- 生成的这个数,只会有三种情况 (>0 , =0 , <0) 完成了随机排序功能

一句话说明

  • Sort会修改原数组,谨慎使用
  • 实参是一个函数,函数的返回值为一个数字,负数向前排;相等则不动;大于向后排。

MDN链接

使用语法

arr.sort([compareFunction])

参数:

如果没有 compareFunction 参数,会将元素转为字符串去逐位比较 (9 在 80 之前),从小到大

  • compareFunction 可选
    用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的Unicode位点进行排序。
    • firstEl
      第一个用于比较的元素。
    • secondEl
      第二个用于比较的元素
aa.sort((a,b)=>a-b)  // 从小到大
返回值

一个数组,并且对原数组也执行了相应操作

v8 引擎代码

刚巧,这个函数的 v8的代码我看过一点,所以这里也就列出来了
github/v8/v8
从这个文件的第 712 行可以看到 For short (length <= 22) arrays, insertion sort is used for efficiency. ,也就是说,如果数组数量 小于23个,采用 插入排序的方式 如果 大于22个,会采用快速排序方式

相关文章

  • vue 中 去重方法 Element列表

    //去重方法 uniq(array){ array.sort(); v...

  • Array.sort()

    array.sort(sortFunction);//竟然传入的是比较函数 还可以根据自己需要排序,例如按数组项的...

  • Array.sort

    数组排序函数,经常使用。(抱歉,我没用过,如果你不问,我是想不到排序用这个函数的 。工作中用到数组排序函数时,都是...

  • Array.sort()

    它的原理是传入的回调函数会将数组中的元素,两两拿出来做比较,当返回值小于0时,a会被移动到b的前面。反之同理 此处...

  • Array.sort()

    在一个算法题中看到了这个sort方法,方法原理有点模糊,没办法,来马克一下,加强下记忆吧。 一. 定义和用法 首先...

  • 数组去重

    1. 双层for循环 2. Array.filter() + indexOf 3. Array.sort() + ...

  • Array.sort()相关

    问题描述 用Array.sort()在不传入自定义比较函数的情况下,排序结果是按位比较的结果,而不是预期的按数字大...

  • JavaScript踩过的坑

    开一篇记录踩过的坑...... Array.sort() 数组排序 Array.prototype.sort()有...

  • 数组的方法(三)

    Array.sort() 数组排序(默认按字符编码(ASCII)排序) Array.push() 从数组尾部添加元...

  • 数组操作

    array.join array.slice ES5 伪数组转真数组 ES6 array.sort forEach...

网友评论

    本文标题:Array.sort

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