zoukankan      html  css  js  c++  java
  • JS中数组重排序方法

    在数组中有两个可以用来直接排序的方法,分别是reverse()和sort()。下面通过本文给大家详细介绍,对js数组重排序相关知识感兴趣的朋友一起看看吧

    1.数组中已存在两个可直接用来重排序的方法:reverse()和sort()。

    reverse()和sort()方法的返回值是经过排序后的数组。reverse()方法会反转数组项的顺序:


    var values=[1,2,3,4,5];
    values.reverse();
    alert(values); //5,4,3,2,1

       

    在默认情况下,sort()方法按升序排列数组,sort()方法会调用每个数组项的toString()转型方法,然后比较得到字符串,确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串

    var values = [0,1,5,10,15];
    values.sort();
    alert(values); //0,1,10,15,5

    因此,sort()方法可以接收一个比较函数作为参数。

    function compare(value1,value2){
    if (value1 < value2){
    return -1;
    }else if (value1 > value2){
    return 1;
    }else{
    return 0;
    }
    }

    此比较函数可适用于大多数数据类型,只要将其作为参数传递给sort()方法即可:

    var values = [0,1,3,7,9,15];
    values.sort(compare);
    alert(values); //0,1,3,7,9,15

    也可通过比较函数产生降序排序,只需交换函数返回值即可:

    function compare (value1, value2){
    if (value1<value2){
    return 1;
    }else if {
    return -1;
    }else{
    return 0;
    }
    }

    sort()函数的排序条件是:

    参数大于0,arr的相邻两个元素交换位置;

    参数小于0,arr的相邻两个元素不交换位置;

    参数等于0,arr的相邻两个元素大小相等;所以compare自定义函数必须返回一个数值。

    2.对于数值类型或者valueOf()方法会返回数值类型的对象类型。

    可使用一个更简单的比较函数。此函数只要第二个值减第一个值即可。

    function compare (value1,value2){
    return value2 - value1;
    }
  • 相关阅读:
    【学习笔记/题解】树上启发式合并/CF600E Lomsat gelral
    【学习笔记/题解】虚树/[SDOI2011]消耗战
    【题解】 [GZOI2017]小z玩游戏
    【题解】CF1426E Rock, Paper, Scissors
    【题解】CF1426D Non-zero Segments
    【题解】NOIP2018 填数游戏
    【题解】NOIP2018 旅行
    【题解】NOIP2018 赛道修建
    【题解】时间复杂度
    【题解】「MCOI-02」Convex Hull 凸包
  • 原文地址:https://www.cnblogs.com/good10000/p/6088773.html
Copyright © 2011-2022 走看看