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));        
  • 相关阅读:
    Windows 8实例教程系列 开篇
    qt 开发发布于 windeploy.exe
    qt qoci 测试验证
    vmware vmx 版本不兼容
    qt oracle
    vc qt dll
    QOCIDriver unable to create environment
    qoci 编译完 放置位置 具体根据情况
    calling 'lastError' with incomplete return type 'QSqlError' qsqlquer
    Hbase 操作工具类
  • 原文地址:https://www.cnblogs.com/padding1015/p/6600844.html
Copyright © 2011-2022 走看看