js对象比较

使用闭包实现 js 对象按指定属性进行大小比较

需要比较的对象

let obj1 = {
    name:'张三',
    age:19
};
let obj2 = {
    name:'李四',
    age:22
};

创建返回闭包的比较方法

function compareObjectFunction(propName){
    return function(obj1,obj2){
        let val1 = obj1[propName],
            val2 = obj2[propName];
        if(val1 < val2){
            return -1;
        }else if(val1 > val2){
            return 1;
        }else{
            return 0;
        }
    }
}

调用方法:

1、首先传入比较的属性名获取比较方法

2、使用比较方法进行对象比较

如:按姓名比较

const compareName = compareObjectFunction('name');
compareName(obj1,obj2);

如:按年龄比较

const compareAge = compareObjectFunction('age');
compareAge(obj1,obj2);