zoukankan      html  css  js  c++  java
  • JS实现根据数组对象的某一属性排序

    • 简单升序排列
    var list = [
      { name: "jack", age: 14 },
      { name: "lily", age: 10 },
      { name: "king", age: 13 },
    ]
    function orderList(attr) {
      return function (a, b) {
        return a[attr] - b[attr]
      }
    }
    list.sort(orderList("age"));
    console.log(list);
    

    attr 为要排序的属性
    得到结果:

    • 根据某个属性值升序还是降序排列
    /**数组根据数组对象中的某个属性值进行排序的方法 
       * 使用例子:newArray.sort(orderList('age',false)) //表示根据age属性降序排列;若第二个参数不传递,默认表示升序排序
       * @param attr 排序的属性 如age属性
       * @param rev true表示升序排列,false降序排序
       * */
    function orderList(attr, rev) {
      //第二个参数没有传递 默认升序排列
      if (rev == undefined) {
        rev = 1;
      } else {
        rev = (rev) ? 1 : -1;
      }
      return function (a, b) {
        a = a[attr];
        b = b[attr];
        if (a < b) {
          return rev * -1;
        }
        if (a > b) {
          return rev * 1;
        }
        return 0;
      }
    }
    list.sort(orderList("age", false));  
    console.log(list);
    

    如上第二个参数为false即为降序排列,结果如下:

  • 相关阅读:
    Yum与list结合
    DNS辅助
    DHCP中继
    apache+SSL 搭建https
    vsftpd服务器
    根据Eclipse SVN changelog使用ANT自动打增量包
    SHELL 近期学习
    Tomcat源码学习一
    oracle笔记
    Linux 下安装 SVN服务器
  • 原文地址:https://www.cnblogs.com/ZerlinM/p/14041235.html
Copyright © 2011-2022 走看看