Javascript 如何在对对象数组排序后再次反向排序?

Javascript 如何在对对象数组排序后再次反向排序?,javascript,arrays,sorting,vue.js,Javascript,Arrays,Sorting,Vue.js,我使用v-for来列出项目,对于每个属性,我试图通过升序和降序对它们进行排序 事实上,我触发了v-btn上的排序函数以升序排序,但当我再次单击时,什么也没有发生。我想在再次单击时反转排序等 我对我的属性的当前方法是: sortByScope() { this.alerts.sort(function(a, b){ if(a.scope < b.scope){ return -1 } if(a.scope >

我使用v-for来列出项目,对于每个属性,我试图通过升序和降序对它们进行排序

事实上,我触发了v-btn上的排序函数以升序排序,但当我再次单击时,什么也没有发生。我想在再次单击时反转排序等

我对我的属性的当前方法是:

sortByScope()
      {
        this.alerts.sort(function(a, b){
            if(a.scope < b.scope){ return -1 }
            if(a.scope > b.scope){ return 1 }
            return 0
        })
      },
sortByScope()
{
this.alerts.sort(函数a、b){
if(a.scopeb.scope){return 1}
返回0
})
},
你有什么想法吗


感谢您的关注

如果我正确理解了您的问题,您希望您的按钮根据列的当前排序进行升序或降序排序。您可以使用切换标志执行此操作:

sortByScope(){
this.alerts.sort(函数a、b){
返回此。sortScopeToggle
?a-b
:b-a;
});
this.sortScopeToggle=!this.sortScopeToggle;
}

其中,
sortScopeToggle
是一个跟踪排序顺序的布尔值,基于此布尔值,a返回排序算法。

您的意思是像此解决方案一样?哇!我以为我搜索了所有的堆栈主题,但你搞定了!非常感谢。为什么处理程序中不只有一个处理程序使用三元条件?
this.alerts.sort((a,b)=>this.sortScopeToggle?(a-b):(b-a))我有几个属性要排序,@db1975将我重定向到另一个主题,这正是我所需要的。用一种方法和一个计算的方法,它就像一个符咒。