<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue中的变异方法:排序:sort()方法 和反转:reverse() 方法</title>
    <script type="text/javascript" src="vue.js"></script>
</head>
<body>
<div id="demo">
    <li v-for="(v,k) in comments">
        {{v.id}}——{{v.content}}
        <button v-on:click="remove(k)">删除</button>
    </li>
    <textarea rows="10" cols="20" v-model="current"></textarea><br/>
    <button v-on:click="push('first')">在数据前面增加</button>
    <button v-on:click="push('last')">在数据后面增加</button>
    <br>
    <button v-on:click="del('first')">删除第一个数据</button>
    <button v-on:click="del('last')">删除最后一个数据</button>
    <br>
    <button v-on:click="sort">降序排序</button>
    <br>
    <button v-on:click="reverse">数据反转</button>
    <br>
    <button v-on:click="alldel">删除所有数据</button>
</div>
<script type="text/javascript">
new Vue({
    el:"#demo",
    data:{
        current:"",
        comments:[
            {id:1,content:'JAVA'},
            {id:0,content:'PHP'},
            {id:3,content:'HTML'},
            {id:2,content:'CSS'}
        ]
    },
    methods:{
        //删除所有数据的方法:
        alldel(){
            this.comments=[];
        },
        //倒序排序的方法:
        sort(){
            this.comments.sort((a,b)=>{
                return a.id<b.id;
            });
        },
        //反转数据:
        reverse(){
            this.comments.reverse();
        },
        //增加数据的方法:
        push(type){
            var id=this.comments.length;
            var content={id:id,content:this.current};
            switch (type){
                case 'first':
                    this.comments.unshift(content);
                    break;
                case 'last':
                    this.comments.push(content);
                    break;
            }
            this.current="";
        },
        //删除数据的方法:
        del(type){
            switch (type){
                case 'first':
                    this.comments.shift();
                    break;
                case 'last':
                    this.comments.pop();
                    break;
            }
        },
        //点击删除,删除对应的数据信息:
        remove(k){
            this.comments.splice(k,1);
        }
    }
});
</script>
</body>
</html>