Array对象的方法——sort

81 阅读1分钟

说明

  • 对数组进行排序,会修改原数组

使用方法

参数(选传):

  • 参数一:选传。用于定义排序的顺序,是一个函数。

    • 如果不传,就会先把数组里边的元素转换成字符串,然后再根据每个字符的Unicode码位值进行排序

image.png

    • 该函数接收两个参数(a,b),然后根据返回值确定升序降序

    • 如果用循环来看,

      a = arr[i + 1], b = arr[i]

    • return a - b:则代表升序

    • 因为如果a > b,则返回值大于0,ab 后,如 [b, a]

    • return b - a:则代表降序

    • 因为如果a > b,则返回值小于0,ab 前,如 [a, b]

    • 如果他们两个相等,则顺序不变

    • 返回值等于0,保持 ab 原来的顺序

image.png

  • 如果需要排序的数组是稀疏数组

    • 数组元素是稀疏的 [1, , , , 100000],则空槽元素会被移动到数组的末尾,并排在undefined的后边

image.png

返回值:

  • 返回的是对同一个对象的引用,也就是指向原数组的内存地址。image.png
  • 如果不想修改原数组,可以使用toSorted
    • 该方法用法与toSorted一致,只不过该方法返回的是一个新数组,将原数组进行浅拷贝后,返回一个排序过后的新数组