[代码笔记]JS保持函数单一职责,灵活组合

前端开发 作者: 2024-08-20 18:40:01
比如下面的代码,从服务端请求回来的订单数据如下,需要进行以下处理1.根据 status 进行对应值得显示(0-进行中,1-已完成,2-订单异常)2.把 startTime 由时间戳显示成 yyyy-m
let orderList=[
    {
        id:1,status:02153852320000014'''守候'
    },name:'浪迹天涯''曾经'
    }
]
let handleFn={
    setStatus(list){
        let _status={
            0:'进行中'2:'订单异常'
        }
        list.forEach(item=>{
            item.status=item.status.toString()?_status[item.status]:'';
        })
        return list
    },setStartTime(list){
        list.forEach(item=>{
            item.startTime=item.startTime.toString()?new Date(item.startTime).toLocaleDateString().replace(/\//g,'-'):'' list;
    },setInfo(list){
        list.forEach(item=>{
            for(let key in item){
                if(item[key]===''){
                    item[key]='--';
                }
            }
        })
        {
            0:'普通用户'2:'超级vip'{
            item.type=item.type.toString()?_type[item.type]:'' list;
    }
}
//处理订单数据
orderList=handleFn.setStatus(orderList);
orderList=handleFn.setStartTime(orderList);
orderList=handleFn.setInfo(orderList);
console.log(orderList);
处理用户数据
userList=handleFn.setType(userList);
userList=handleFn.setInfo(userList);
console.log(userList);
let ec=(function () {
    let handle= (obj) {
        深拷贝对象
        this.obj=JSON.parse(JSON.stringify(obj));
    };
    handle.prototype={
        /**
         * @description 设置保密信息
         */
        setInfo(){
            this.obj.map(item=>{
                 item){
                    ){
                        item[key]='--';
                    }
                }
            });
            return this;
        },*
         * @description 设置状态
         
           setStatus(){
               let _status={
                   0:'进行中'
               }
               this.obj.forEach(item=>{
                item.status=item.status.toString()?_status[item.status]:''
            });
            ;
           },1)">*
         * @description 设置时间
         
           setStartTime(){
               {
                item.startTime=item.startTime.toString()?;
            });
            *
         * @description 设置type
         
           setType(){
            let _type={
                0:'普通用户'
            }
            {
                item.type=item.type.toString()?_type[item.type]:'';
            })
            *
         * @description 返回处理结果
         * @return {Array|*}
         
        end(){
            .obj;
        }
    }
    暴露构造函数接口
    new handle(obj);
    }
})();
ec(orderList).setStatus().setStartTime().setInfo().end();
console.log(orderList);
ec(userList).setType().end();
console.log(userList);
let ec=(JSON.parse(JSON.stringify(obj));
        记录要处理的步骤
        this.handleFnList=[];
    };
    handle.prototype=
        handleSetInfo(item){
            ;
                }
            }
            this.handleFnList.push('handleSetInfo');
            
           handleSetStatus(item){
               let _status=
               }
            item.status=item.status.toString()?_status[item.status]:''
             item;
           },setStatus(){
            this.handleFnList.push('handleSetStatus'
           handleSetStartTime(item){
            item.startTime=item.startTime.toString()?;
            this.handleFnList.push('handleSetStartTime'
           handleSetType(item){
            let _type=
            }
            item.type=item.type.toString()?_type[item.type]:'' item;
        },setType(){
            this.handleFnList.push('handleSetType'统一处理操作
            this.handleFnList.forEach(fn=>{
                    item=[fn](item);
                })
            })
             handle(obj);
    }
})();
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_65662.html