亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue 根據數組中某一項的值進行排序的方法

2019-11-19 13:06:24
字體:
來源:轉載
供稿:網友

vue中數組和對象的排序

1數組排序

<div id="app">  <ul>   <li v-for="a in arr1">{{a}}</li>  </ul> </div>  <script type="text/javascript">   new Vue({    el:"#app",    data:{     arr:[1,4,5,2,3,44]    },computed:{     arr1:function(){      return this.arr.sort(sortNum)//調用排序方法     }    }   })   function sortNum(a,b){//排序方法    return a-b;   }  </script>

2對象排序

<div id="app">   <ul>    <li v-for="(stu,index) in students1">{{stu}}</li>   </ul>  </div>  <script type="text/javascript">   new Vue({    el:"#app",    data:{     students:[      {name:"小a",age:20},      {name:"小b",age:21},      {name:"小c",age:18},      {name:"小d",age:19},      {name:"小f",age:18}     ]    },    computed:{     students1:function(){      return sortKey(this.students,'age')     }    }   })   function sortKey(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>

一、前言

我在vue項目中遇到了一個表格排序的需求,根據某一項的值的大小從大到小調整數組順序。

二、代碼

表格大概是這個樣子,樣式和圖片在代碼中簡化了。

<table class="recommend_table" cellspacing="0"> <tr>  <th>股票</th>  <th @click="sort('in_price')">入選價</th>  <th @click="sort('now_price')">最新價</th>  <th @click="sort('increase')">模擬漲跌幅</th> </tr> <tr v-for="(item,index) in recommendlist" :key="index">  <td>   <div class="recommend_name">{{item.name}}</div>   <div class="recommend_num">{{item.bn}}</div>  </td>  <td>{{item.in_price}}</td>  <td>{{item.now_price}}</td>  <td>{{item.increase}}%</td> </tr></table><script type="text/ecmascript-6"> export default {  data(){   return{    recommendlist: [     { name:'高科石化', bn:'002778', in_price: 20.68, now_price: 28.68, increase: 10.01 },     { name:'中孚信息', bn:'300659', in_price: 19.46, now_price: 17.46, increase: 9.06 },     { name:'永福股份', bn:'300712', in_price: 17.68, now_price: 32.68, increase: 2.01 }    ],    sortType: 'in_price'   }  },  methods: {   sort(type) {    this.sortType = type;    this.recommendlist.sort(this.compare(type));    // switch(type){     // case 'in_price':     //  this.sortType = 'in_price';     //  this.recommendlist.sort(this.compare('in_price'));     //  break;     // case 'now_price':     //  this.sortType = 'now_price';     //  this.recommendlist.sort(this.compare('now_price'));     //  break;     // case 'increase':     //  this.sortType = 'increase';     //  this.recommendlist.sort(this.compare('increase'));     //  break;    // }   },   compare(attr) {    return function(a,b){     var val1 = a[attr];     var val2 = b[attr];     return val2 - val1;    }   }  } }</script>

1. 排序方法

這里用到的是數組的sort方法,這個方法有一個需要注意的地方,就是不傳參數的話,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。這并不是我們想要的排序方法,所以必須要傳參。

sort方法的參數是一個函數,這個函數提供了一個比較方法,要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數字。

  1. 若 a 小于 b,在排序后的數組中 a 應該出現在 b 之前,則返回一個小于 0 的值。
  2. 若 a 等于 b,則返回 0。
  3. 若 a 大于 b,則返回一個大于 0 的值。
compare(key) { return function(a,b){  var val1 = a[key];  var val2 = b[key];  return val2 - val1; }}

在代碼中,compare函數中的匿名函數就是這樣一個函數,但這個函數外面又嵌套了一層,這是因為需要根據數組中的某一項來排序,所以需要把這一項的key值傳進來。

2. 調用排序方法

sort(type) { this.sortType = type; this.recommendlist.sort(this.compare(type)); // switch(type){  // case 'in_price':  //  this.sortType = 'in_price';  //  this.recommendlist.sort(this.compare('in_price'));  //  break;  // case 'now_price':  //  this.sortType = 'now_price';  //  this.recommendlist.sort(this.compare('now_price'));  //  break;  // case 'increase':  //  this.sortType = 'increase';  //  this.recommendlist.sort(this.compare('increase'));  //  break; // }}

一開始我按照注釋的部分寫的,和我一樣抽象能力不是特別好的人首先會想到要這樣寫,但是寫出來之后發現三種情況不過是重復的代碼,這時我就直接用最上面兩行代碼來代替,寫完以后感覺內心一片平和。這種復用率高的代碼簡直讓人太舒服了。

三、結語

雖然是一個簡單的功能,但是非常值得歸納總結一下。希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
俺去了亚洲欧美日韩| 久久香蕉频线观| 久久在线免费视频| 久久777国产线看观看精品| 成人久久一区二区| 97在线看免费观看视频在线观看| 亚洲九九九在线观看| 欧美一级淫片丝袜脚交| 国外成人在线视频| 大荫蒂欧美视频另类xxxx| 91在线高清免费观看| 亚洲理论在线a中文字幕| 国产欧美在线播放| 国产精品日日摸夜夜添夜夜av| 久久久精品一区二区三区| 97视频在线观看免费高清完整版在线观看| 国产精品亚洲综合天堂夜夜| 国产精品久久久久91| 日韩欧美精品免费在线| 91黑丝高跟在线| 尤物精品国产第一福利三区| 亚洲成人av资源网| 在线播放国产一区中文字幕剧情欧美| 亚洲欧美日韩中文在线制服| 国产精品视频自在线| 欧美日韩成人黄色| 国产精品96久久久久久又黄又硬| 久久久久久久久久婷婷| 538国产精品一区二区在线| 久久久久亚洲精品国产| 国产情人节一区| 在线观看精品自拍私拍| 欧美高清视频在线| 69久久夜色精品国产69乱青草| 亚洲精品97久久| 亚洲色图欧美制服丝袜另类第一页| 日韩视频永久免费观看| 国产精品久久av| 成人h片在线播放免费网站| 精品日本美女福利在线观看| 欧美激情精品久久久| 欧美成人免费va影院高清| 777国产偷窥盗摄精品视频| 久久精品国产亚洲| 欧美日韩亚洲精品内裤| 欧美激情二区三区| 亚洲www在线| 久久久久久久久久亚洲| 91av在线精品| 福利视频第一区| 亚洲第一福利在线观看| 91精品视频免费观看| 国产精品偷伦免费视频观看的| 疯狂蹂躏欧美一区二区精品| 日韩视频亚洲视频| 国产精品普通话| 日韩人在线观看| 麻豆国产va免费精品高清在线| 亚洲欧美国产一区二区三区| 亚洲视频欧洲视频| 亚洲国产精品久久91精品| 激情成人在线视频| 亚洲成人黄色网| 亚洲人午夜精品免费| 久久综合久久88| 成人午夜一级二级三级| 57pao国产成人免费| www国产亚洲精品久久网站| 日韩中文视频免费在线观看| 中文字幕亚洲综合久久| 91成人在线播放| 欧美日本国产在线| 国产成人鲁鲁免费视频a| 成人女保姆的销魂服务| 欧美成人免费全部观看天天性色| 国产精品日韩欧美综合| 亚洲欧美999| 日韩在线视频播放| 午夜精品久久久久久久男人的天堂| 久久久国产精彩视频美女艺术照福利| 久久久久久久av| 中文字幕av一区中文字幕天堂| 亚洲一区二区三区在线免费观看| 国产精品久久久久秋霞鲁丝| 91影院在线免费观看视频| 国产福利精品av综合导导航| 国产69精品久久久久9999| 国产精品第七十二页| 日韩在线小视频| 国产精品自拍偷拍视频| 国产免费观看久久黄| 亚洲韩国日本中文字幕| 欧美老妇交乱视频| 亚洲视频视频在线| 91禁国产网站| 日韩av手机在线看| 欧美日韩美女在线观看| 97视频网站入口| 亚洲精品白浆高清久久久久久| 日韩美女av在线| 精品欧美一区二区三区| 亚洲欧美另类在线观看| 亚洲人成网在线播放| 国产精品69精品一区二区三区| 国精产品一区一区三区有限在线| 欧美亚洲在线播放| 日韩欧美一区二区三区久久| 不卡av在线播放| 一区二区三区无码高清视频| 欧洲精品久久久| 成人激情春色网| 91精品国产综合久久香蕉922| www欧美xxxx| 欧美日韩亚洲网| 日韩电影在线观看免费| 亚洲第一页中文字幕| 2018国产精品视频| 久久精品国产久精国产一老狼| 国产欧美欧洲在线观看| 国产精品高潮呻吟视频| 91精品久久久久久久久青青| 亚洲片在线资源| 国产精品一区二区av影院萌芽| 欧美大片在线看免费观看| 91av视频在线| 久久久久免费精品国产| 国产精品偷伦免费视频观看的| 亚洲最大福利视频网站| 中文字幕精品久久| 北条麻妃在线一区二区| 在线成人中文字幕| 久久久久久网站| 国产精品成人品| 九九九热精品免费视频观看网站| 国产精品专区h在线观看| 久久精品福利视频| 久久久最新网址| 91久久精品在线| 国产91久久婷婷一区二区| 成人看片人aa| 国产成人精品在线观看| 午夜精品国产精品大乳美女| 精品久久久久久久久久国产| 亚洲男人的天堂在线播放| 午夜精品久久久久久久99黑人| 国内免费久久久久久久久久久| 日韩欧美极品在线观看| 日韩69视频在线观看| 成人国产精品日本在线| 国产精品久久久久免费a∨大胸| 欧美激情一级精品国产| 中文字幕亚洲一区二区三区五十路| 97人洗澡人人免费公开视频碰碰碰| 亚洲男人av在线| 欧美一级淫片播放口| 欧美做受高潮1| 日本精品久久中文字幕佐佐木| 一区二区欧美激情| 欧美性生交xxxxxdddd| 欧美xxxx14xxxxx性爽| 深夜福利国产精品| 精品久久久久久久久久| 亚洲视频日韩精品| 日韩在线不卡视频|