使用vue實現數組排序輸出


在學習vue指令的時候發現一個JavaScript數組的坑,記錄一下

(1)數組排序處理

<div id="app">
      <ul>
          <li v-for="item in sortItems">
              {{item}}
          </li>
      </ul>
    </div>

    <script type="text/javascript">
        var app=new Vue({
            el:'#app',
            data:{
                items:[20,23,7,89,66,45]
            },
            computed:{
                sortItems:function(){
                    return this.items.sort();
                }
            },
        });

結果如下:

 

為了解決這個問題做出如下處理:

 <script type="text/javascript">
        var app=new Vue({
            el:'#app',
            data:{
                items:[20,23,7,89,66,45]
            },
            computed:{
                sortItems:function(){
                    return this.items.sort(sortNumber);
                }
            },
        });
        // 排序處理
        function sortNumber(a,b){
            return a-b
        }
    </script>

處理后的結果:

 (2)數組對象方法排序處理

<div id="app">
      <ul>
        <li v-for="student in sortStudent">
            {{student.name}} - {{student.age}}
        </li>
      </ul>
    </div>

    <script type="text/javascript">
        var app=new Vue({
            el:'#app',
            data:{
                students:[
                    {name:'jspang',age:32},
                    {name:'Panda',age:30},
                    {name:'PanPaN',age:21},
                    {name:'King',age:45}
                ]
            },
            computed:{
                sortStudent:function(){
                    return sortByKey(this.students,'age');
                }
            },
        });
        // 數組對象方法排序:
        function sortByKey(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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM