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,进行排序可实现多条件排序的算法。

  • 相关阅读:
    元素定位不到的问题,Timeout,nosuch element,unable locate等
    webpack的安装
    Mysql修改表
    Mysq表的创建和l数据类型
    Mysql的库操作
    面向对象的序列化和反序列化
    类的关键字:final、const
    面向对象接口以及和继承的混合案例
    DOM创建移除替换元素
    抽象类
  • 原文地址:https://www.cnblogs.com/PingleDay/p/15741645.html
Copyright © 2011-2022 走看看