zoukankan      html  css  js  c++  java
  • js实现多条件排序

    1.sort排序允许接受一个参数(函数),这个函数接受2个形参a,b,并且通过冒泡的方式比较。
    例子:
    Arr.sort((a,b) => a-b);   升序排列
    Arr.sort((a,b) => b-a);   降序排列
    排序原理:

    • 当返回值为负数时,那么前面的数在前面,也就是不动
    • 当返回值为正数时,那么后面的数在前
    • 为0,不动

    因此,我们设计多条件排序方法如下:
    数据结构设计如下:var data = {
    {name:“张三”,age:20,index:1},
    {name:“李四”,age:19,index:2},
    {name:“张三”,age:18,index:3},
    {name:“王五”,age:22,index:4},
    {name:“张三”,age:25,index:5},
    {name:“胖子”,age:30,index:6},
    {name:“李四”,age:13,index:7},
    }
    排列要求,先按名字进行排序,然后按照年龄进行排序,再按index进行排序
    处理函数:
    function dataSort(a,b){
    if(a['name'] == b['name']){
       if(a['age'] == b['age]){
          if(a['index'] < b['index']{
             return -1;
          }
      }else{
         if(a['age']<b['age']){
           return -1;
         }else{
           return 1;
        }
      }else{
         if(a['name] < b['name]){
            return -1;
         }else{
        return 1;
        }
    }
    }
    取得返回结果:
    [
    {name:“张三”,age:18,index:3},
    {name:“张三”,age:20,index:1},
    {name:“张三”,age:25,index:5},
    {name:“李四”,age:13,index:7},
    {name:“李四”,age:19,index:2},
    {name:“王五”,age:22,index:4},
    {name:“胖子”,age:30,index:6},

    总结:根据条件动态的返回1或者-1,进行排序可实现多条件排序的算法。

  • 相关阅读:
    Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    reversePairs
    sort
    分割数组的最小值
    decode string
    276. 栅栏涂色
    133. Clone Graph
    Palindromic string
    爬楼梯
    正则匹配
  • 原文地址:https://www.cnblogs.com/PingleDay/p/15741645.html
Copyright © 2011-2022 走看看