前端实现列表排序 (时间 名称 升序 降序)

	function pcompare(prop,rev) {
            // 第二个参数没有传递,默认升序排序
            if(rev === undefined) {
                rev = 1;
            }else {
                rev = rev ? 1: -1;
            }
            return function(obj1,obj2) {
                // 方括号也是访问对象属性的一种方式,优点是可以通过变量访问。
                // 常规写法是 var val1 = obj1.prop;var val2 = obj2.prop;,但是这种不支持变量写法,所有这里不适用
                var val1 = obj1[prop],
                    val2 = obj2[prop];

                // 若是升序排序,此时rev=1,rev*-1=-1,等价于return val1 < val2 ? -1 : 1,,即val1
                // 若是降序排序,下面句子等价于return val1 < val2 ? 1 : -1,即val1
                return val1 < val2 ? rev*(-1) : rev*1;
            }
        }

        var data = [{
            name: "王物",
            age: 12,
            time:'2020-10-24 11:45:43',
        }, {
            name: "三三",
            age: 3,
            time:'2020-10-24 11:45:48',
        }, {
            name: "李四",
            age: 7,
            time:'2020-10-22 11:45:50',
        }];

        // 这里变量要加""
        // 姓名按字符串编码降序排序
        // pcompare函数 第一个参数为需要排序的字段 第二个参数 false 为降序 true为升序
        data.sort(pcompare("time",false));
        console.log(data);

你可能感兴趣的:(杂七杂八,js,前端排序,vue,排序,列表排序)