sort()对数组进行排序

一、数组的默认排序

 var arr = [8,7,6,1,2,4,3,9,5]
 console.log(arr.sort())

输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9],默认是升序排列,从小到大

二、sort()比较函数实现降序,从大到小排列

    var arr = [8,7,6,1,2,4,3,9,5]
    console.log(arr.sort(function(a,b){
      return b- a
    }))

输出结果:[9, 8, 7, 6, 5, 4, 3, 2, 1]

知识点:

1.参数a和b,就是依次从数组中取连续的两个元素,如从示例中先选择前两个元素 8,7。
所以,在匿名函数内 b - a 的结果是 -1。

再看下,匿名函数的结果跟排序的关系:
如果小于 0 ,那么 a 会被排列到 b 之前;
如果等于 0 , a 和 b 的相对位置不变。备注:ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守(例如 Mozilla 在 2003 年之前的版本);
如果大于 0 , b 会被排列到 a 之前。
必须总是对相同的输入返回相同的比较结果,否则排序的结果将是不确定的。

三、中文实现排序

    var array = ['最', '啊', '传', '不'];
    var resultArray = array.sort(
      function (param1, param2) {
        return param1.localeCompare(param2,"zh")
      }
    )
    console.log(resultArray)
    var resultArray2 = array.sort(
      function (param1, param2) {
        return param2.localeCompare(param1,"zh")
      }
    )
    console.log(resultArray2)

输出结果:

1.["啊", "不", "传", "最"]

2.["最", "传", "不", "啊"]

猜你喜欢

转载自www.cnblogs.com/qiuchuanji/p/12083781.html