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

  • 相关阅读:
    Ubuntu16.04安装Docker、nvidia-docker
    Java 对象和类
    Java基础知识总结
    Java 学习路线
    编写radware的负载配置
    MySQL的主从复制+双主模式
    模拟MBR Grub故障修复
    搭建Nginx(haproxy)+keepalived+Tomcat双主高可用负载均衡
    golang数据库操作初体验
    我操蛋的2019
  • 原文地址:https://www.cnblogs.com/PingleDay/p/15741645.html
Copyright © 2020-2023  润新知