zoukankan      html  css  js  c++  java
  • JS-比较函数中嵌套函数,可以排序【对象数组】

     1 function createCompareFun(propertyName){
     2                 return function(object1,object2){
     3                     var value1 = object1[propertyName];
     4                     var value2 = object2[propertyName];
     5                     if(value1>value2){
     6                         return 1;
     7                     }else if(value1<value2){
     8                         return -1;
     9                     }else{
    10                         return 0;
    11                     }
    12                 };
    13             }
    14             var data = [{
    15                 name : "guo",
    16                 age : 23
    17             },{
    18                 name : "zhao",
    19                 age : 28
    20             },{
    21                 name : "zhang",
    22                 age : 24
    23             }];
    24             
    25             data.sort(createCompareFun("name"));
    26             document.write("<hr/>用name排序,获得的第二位的元素的name值是:【"+data[1].name+"】");
    27             data.sort(createCompareFun("age"));
    28             document.write("<br/>用age进行排序,获得的最后一个元素的name是:【"+data[2].name+"】")
    29             

    说明:createCompareFun()函数内部,嵌套一个内部函数,函数作为值被return返回,

    内部函数传两个参数,并通过[]讲createCompareFun()函数的propertyName属性解析出来,在通过常规比较函数进行判断、比较。

    在data中,定义了一个有三个元素的对象数组,最后调用createCompareFun()函数,并根据自己需要比较的属性来传参,函数对数组进行排序。得到比较的结果。

    再加一个普通的比较函数

     1                     function compare(value1,value2){
     2                 if(value1>value2){
     3                     return 1;
     4                 }else if(value1<value2){
     5                     return -1;
     6                 }else{
     7                     return 0;
     8                 }
     9             }
    10             var arrM = [1,325,6,74,2]
    11             console.log(arrM.sort(compare));        
  • 相关阅读:
    linux命令-定时任务at
    linux网络监控_网速测试
    Linux磁盘分区扩容
    Ubuntu配置SSH服务
    Ubuntu用户管理
    Ubuntu安装lrzsz
    Ubuntu系统配置apt-get软件更新源
    Ubuntu网络配置IP和DNS等,适用于14.04,16.04,17.10和18.04
    Ubuntu系统安装,适用于14.04,16.04和17.10
    使用nginx反向代理处理前后端跨域访问
  • 原文地址:https://www.cnblogs.com/padding1015/p/6600844.html
Copyright © 2011-2022 走看看