对用户进行根据成绩或者别的信息进行排序
对用户列表按照用户的首字母进行排序
const {data} = await axios.get(url)
this.proxy = new Proxy({}, {
get(target, key){
if(key === 'asc'){ // 升序
return [].concat(data).sort((a, b) => a.name > b.name ? 1 : -1)
}else if( key === 'desc') { // 降序
return [].concat(data).sort((a, b)=> b.name > a.name ? 1 : -1)
}else {
return data
}
},
set() {
return false
}
})
// 当我们取值的时候,就会经过 proxy的get方法
// 默认排序
this.userList = this.proxy.default
// 升序
this.userList = this.proxy.asc
// 降序
this.userList = this.proxy.desc
使用 [].concat(data).sort()
是为了保证 data
数据的原数据不变,方便重置数据触发的时候,可以获取到data
原先未排序的数据sort()
会修改原数组数据,而不是返回一个新的数组