vue数组对象中按某一字段排序

给下列数组字段中的month排序
在这里插入图片描述
第一步:methods中写一个方法如下:

sortBy(attr, rev) {
     //第二个参数没有传递 默认升序排列
      if(rev == undefined) {
        rev = 1;
      } else {
        rev = (rev) ? 1 : -1;
      }

      return function(a, b) {
        a = a[attr];
        b = b[attr];
      if(a < b) {
       return rev * -1;
         }
        if(a > b) {
          return rev * 1;
      }
      return 0;
      }
    }

第二步:将需要的数组调用此方法

//items为需要排序的数组
 let result= items.sort(this.sortBy('month'))

最后就成了如下图:
在这里插入图片描述
参考文章:https://www.jianshu.com/p/846b215a62de

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue ,你可以使用 `Array.prototype.sort()` 方法对数组进行排序。假设你有一个包含多个对象数组 `items`,每个对象都有一个 `sortOrder` 属性表示排序顺序。你可以按照以下步骤进行排序: 1. 在组件的 `data` 定义一个 `sortKey` 属性表示当前排序的关键字。 2. 定义一个 `sortItems` 计算属性,根据 `sortKey` 对 `items` 数组进行排序。 3. 在页面渲染排序的表头,并绑定点击事件来更新 `sortKey`。 下面是一个示例代码: ```html <template> <div> <table> <thead> <tr> <th @click="sortKey = 'name'">Name</th> <th @click="sortKey = 'age'">Age</th> <th @click="sortKey = 'sortOrder'">Sort Order</th> </tr> </thead> <tbody> <tr v-for="item in sortItems" :key="item.id"> <td>{{ item.name }}</td> <td>{{ item.age }}</td> <td>{{ item.sortOrder }}</td> </tr> </tbody> </table> </div> </template> <script> export default { data() { return { items: [ { id: 1, name: 'John', age: 25, sortOrder: 2 }, { id: 2, name: 'Mary', age: 30, sortOrder: 1 }, { id: 3, name: 'Bob', age: 20, sortOrder: 3 } ], sortKey: 'name' }; }, computed: { sortItems() { const key = this.sortKey; return this.items.sort((a, b) => { return a[key] > b[key] ? 1 : a[key] < b[key] ? -1 : 0; }); } } }; </script> ``` 在这个示例,我们在表头绑定了三个点击事件来更新 `sortKey`,然后使用 `sortItems` 计算属性对数组进行排序并渲染到页面。注意,我们使用了比较运算符 `>` 和 `<` 来比较两个对象排序属性,这里假设这些属性都是基本数据类型(如字符串或数字)。如果你需要比较复杂的数据类型,可以使用更高级的排序算法或自定义比较函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值