根据某一属性用sort()对数组进行排序

需求:现有一个数组arr,如下,想分别根据age和name进行排序,该怎么操作?

var arr=[{

        name:"ZaChary",

        age:16

    },{
        name:"Lily",

        age:18

    },{
        name:"Nicholas",

        age:17

    }];

解决方案:用sort()+比较函数

实现方式:

1、比较函数

function createComparisonFunction(propertyName){

        return function(object1,object2){

            var value1=object1[propertyName];

            var value2=object2[propertyName];

            if(value1<value2){

                return -1;

            }else if(value1>value2){

                return 1;

            }else{

                return 0;

            }

        }

    }

2、使用

console.log(arr.sort(createComparisonFunction("name")));

console.log(arr.sort(createComparisonFunction("age")));

猜你喜欢

转载自blog.csdn.net/wangxiuyan0228/article/details/80293013
今日推荐