• 快速排序,按某个属性,或按“获取排序依据的函数”,来排序


            /*
            * 快速排序,按某个属性,或按“获取排序依据的函数”,来排序.
            * @method soryBy
            * @static
            * @param {array} arr 待处理数组
            * @param {string|function} prop 排序依据属性,获取
            * @param {boolean} desc 降序
            * @return {array} 返回排序后的新数组
            */
            sortBy : function (arr, prop, desc){
                var props=[],
                ret=[],
                i=0,
                len=arr.length;
                if(typeof prop=='string') {
                    for(; i<len; i++){
                        var oI = arr[i];
                        (props[i] = new String(oI && oI[prop] || ''))._obj = oI;
                    }
                }
                else if(typeof prop=='function') {
                    for(; i<len; i++){
                        var oI = arr[i];
                        (props[i] = new String(oI && prop(oI) || ''))._obj = oI;
                    }
                }
                else {
                    throw '参数类型错误';
                }
                props.sort();
                for(i=0; i<len; i++) {
                    ret[i] = props[i]._obj;
                }
                if(desc) ret.reverse();
                return ret;
            }
    调用: _data = _self.sortBy(_data,function(el){return el.addTime;},1);
  • 相关阅读:
    求助
    第五次作业
    第四次作业
    第三次作业
    第二次作业(四则运算)
    关于软件工程相关疑问
    小组成员名单()
    第四次作业
    第二次作业
    第一次作业
  • 原文地址:https://www.cnblogs.com/ningyanbo/p/5260663.html
Copyright © 2020-2023  润新知