数组或数组对象-排序(js)

  1. 按照指定顺序排序
created () {
    this.test()
},
methods: {
    test () {
      const arr = ['a', 'b', '秋', '夏', '冬', '春', 'c']
      arr.sort(function (a, b) {
        var order = ['冬', '秋', '夏', '春'] // order是规则
        return order.indexOf(b) - order.indexOf(a)
      })
      console.log(arr) // ["春", "夏", "秋", "冬", "a", "b", "c"]
      
      const obj = [
        { name: 'a' },
        { name: 'b' },
        { name: '秋' },
        { name: '夏' },
        { name: '冬' },
        { name: '春' },
        { name: 'c' }
      ]
      obj.sort(function (a, b) {
        var order = ['冬', '秋', '夏', '春'] // order是规则
        return order.indexOf(b.name) - order.indexOf(a.name)
      })
      console.log(obj)
    }
}
  1. 数组对象,按照指定字段排序
created () {
    this.test()
},
methods: {
    test () {
      const arr = [
        { id: 3, name: '秋', date: '2021-07-01' },
        { id: 1, name: '春', date: '2021-01-01' },
        { id: 4, name: '冬', date: '2021-10-01' },
        { id: 2, name: '夏', date: '2021-04-01' }
      ]
      const arr1 = arr.sort(this.sortByDate('date', 'ascend'))
      // const arr2 = arr.sort(this.sortByDate('date', 'descend'))
      console.log(arr1)
      // console.log(arr2) // 不要同时console.log,排序会改变原数组顺序
    },
    // 数组对象 按日期字段(某一字段)排序 field:排序字段 order: 排序方式
    sortByDate (field, order) {
      return (x, y) => {
        if (order === 'ascend') {
          return Date.parse(x[field]) - Date.parse(y[field])
        } else {
          return Date.parse(y[field]) - Date.parse(x[field])
        }
      }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值