自定义 Table 搜索功能 + 降序 +升序

在这里插入图片描述

如上图,实现表格简单的搜索和排序功能,
搜索: 利用 vue 的 computed 计算属性来实现;
代码如下:
在这里插入图片描述

export default {
      data() {
        return {
			headList:['序号','姓名','性别','年龄','得分'],
		  	tableData:[
				  {'num':1,'name':'lilo','sex':'女','age':18,'score':33},
				  {'num':2,'name':'abc','sex':'男','age':22,'score':13},
				  {'num':3,'name':'hoho','sex':'女','age':26,'score':83},
				  {'num':4,'name':'pplo','sex':'女','age':14,'score':53}
			],
			value:'',
        }
      },
	  computed:{
		 newData: function(){
			var that = this;
			var data = that.tableData.slice();
			var filterKey = that.value && that.value.toLowerCase();
			if( filterKey ){
				 data = data.filter(function(row) {
						return Object.keys(row).some(function(key) {
							return String(row[key]).toLowerCase().indexOf(filterKey) > -1
						})
					})
			}
			return data
		 }
	  },
      methods: {
		//升序  降序
		handUp(data){
			data.sort((a,b)=>{
                return a.score<b.score;
			});
			this.tableData = data;
		},
		handDown(data){
			data.sort((a,b)=>{
                return a.score>b.score;
			});
			this.tableData = data;
		},
	},
}

PS:
这里会用到js里面的 toLowerCase() 方法先将用户输入的字符串转换为小写;
再利用 filter() 方法过滤用户输入,再使用 some() 用于检测数组中的元素是否满足指定条件;
最后返回 搜索的信息。

补充:
1.理解 js Object.keys() 方法:

  • 传 数组返回数组下标,传入对象返回数组对象的键
    在这里插入图片描述
  • 传入字符串,返回索引组成的数组; 传入Number,返回空数组;传入 boolean ,返回空数组;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值