对用户进行根据成绩或者别的信息进行排序

    对用户列表按照用户的首字母进行排序

    image.png

    1. const {data} = await axios.get(url)
    2. this.proxy = new Proxy({}, {
    3. get(target, key){
    4. if(key === 'asc'){ // 升序
    5. return [].concat(data).sort((a, b) => a.name > b.name ? 1 : -1)
    6. }else if( key === 'desc') { // 降序
    7. return [].concat(data).sort((a, b)=> b.name > a.name ? 1 : -1)
    8. }else {
    9. return data
    10. }
    11. },
    12. set() {
    13. return false
    14. }
    15. })
    16. // 当我们取值的时候,就会经过 proxy的get方法
    17. // 默认排序
    18. this.userList = this.proxy.default
    19. // 升序
    20. this.userList = this.proxy.asc
    21. // 降序
    22. this.userList = this.proxy.desc

    使用 [].concat(data).sort() 是为了保证 data 数据的原数据不变,方便重置数据触发的时候,可以获取到data 原先未排序的数据
    sort() 会修改原数组数据,而不是返回一个新的数组