vue-数据穿插,及代码优化, 记录自己的过往生活!

 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>vue穿梭-->>及es6新语法</title>
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <style>
        #app{
            padding: 60px 0;
        }
        .W10{
            width: 100%;
            height: auto;
            overflow: hidden;
            margin-top: 5px;
            cursor: pointer;
        }
        .W10:hover{
            color: red;
        }
        .row{
            width: 10%;
            height: auto;
            overflow: hidden;
            float:left;
            margin-right: 60px;
        }
        .bule{
            color: blue;
            float: left;
            width: 10%;
            margin-top: 60px;
            margin-right: 60px;
            cursor: pointer;
        }
    </style>
    <body>
        <div id="app">
            <div class="container">
                <div class="row">
                      <div class="W10" v-for="(item,index) in itemL">
                            {{item.id}}
                          <input type="checkbox" v-model="item.check"/>
                          {{item.name}}
                      </div>
                </div>
                <div class="right bule" @click="addRight()"> >> right >> </div>
                <div class="left bule" @click="addLeft()"> << left << </div>
                <div class="row">
                      <div class="W10" v-for="(item,index) in itemR">
                              {{item.id}}
                             <input type="checkbox" v-model="item.check"/>
                            {{item.name}}
                      </div>
                </div>
            </div>
        </div>
    </body>
    <script>
        var app = new Vue({
            el:"#app",
            data:{
                itemL:[
                    {id:1,name:"北京",check:true},
                    {id:2,name:"上海",check:false},
                    {id:3,name:"广州",check:false},
                    {id:4,name:"深圳",check:false},
                    {id:5,name:"杭州",check:false},
                    {id:6,name:"厦门",check:false},
                    {id:7,name:"香港",check:true},
                    {id:8,name:"澳门",check:false}
                ],
                itemR:[],
            },
            methods:{
                addRight:function(v){
                    
//                    优化前代码
//                    var checkL = this.itemL.filter(function(v){
//                        return v.check == true;
//                    })
                     
                     
//                     优化后代码
                     var checkL = this.move(this.itemL,true)
                    
                    this.itemR = this.itemR.concat(checkL);
                    this.itemR= this.sortKey(this.itemR,'id')
                    
//                    优化前代码

//                    this.itemL = this.itemL.filter(function(v){
//                        return v.check == false;
//                    })

//                    优化后代码

                    this.itemL = this.move(this.itemL,false);
                    
                    this.itemL= this.sortKey(this.itemL,'id')
                },
                addLeft:function(v){
                    //  优化前代码
//                    var checkR = this.itemR.filter(function(v){
//                        return v.check == true;
//                    })  

                     // 优化后代码
                    var checkR = this.move(this.itemR,true);
                    
//                    this.itemL= this.itemL.concat(checkR);

                    this.itemL =[...this.itemL,...checkR]

                    this.itemL= this.sortKey(this.itemL,'id')
                    
                    //  优化前代码
//                    this.itemR = this.itemR.filter(function(v){
//                        return v.check == false;
//                    })

//                     插入数据,并排序
                    this.itemR = this.move(this.itemR,false);
                    this.itemR= this.sortKey(this.itemR,'id')
                },
                move:function(data,stye){
                    return data.filter(function(v){
                        return v.check == stye;
                    })
                },
                sortKey: function(array,key){
                        return array.sort(function(a,b){
                             var x = a[key];
                             var y = b[key];
                             return ((x<y)?-1:(x>y)?1:0)
                    })
                   }
        }
       })

    
    </script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值