gpt4 book ai didi

javascript - 在同一次点击中按升序和降序对对象数组进行排序

转载 作者:行者123 更新时间:2023-11-30 19:26:53 25 4
gpt4 key购买 nike

我有一个对象数组:

var arr = [{
title: "finance",
book: "book1"
},
{
title: "nature",
book: "book2"
},
{
title: "programming",
book: "book3"
}]

HTML:

<th><a href="#" ng-click="controller.sortTitle()">TITLE</a></th>

现在我已经在下面实现了一个基本的排序逻辑

JavaSCRIPT(AngularJS Controller ):

self.sortTitle = function () {
self.arr= self.arr.sort((a, b) => (a.title > b.title) ? 1 : -1);
}

此 JavaScript 函数目前仅根据标题按升序对其进行排序。如何编写按任一顺序对其进行排序的逻辑,即 click1 应按升序排序,而 click2 应反转并将其设置为降序?每次点击时基本上都会反转排序。

最佳答案

您可以在 self 上创建一个属性,例如 isAscending 并根据将执行的排序顺序默认为 true 或 false(无论您最初想要什么)并翻转 isAscending 每次排序 fn 运行时。

self.isAscending = true;

self.sortTitle = function () {
if(self.isAscending){
self.arr= self.arr.sort((a, b) => (a.title > b.title) ? 1 : -1);
}else{
self.arr= self.arr.sort((a, b) => (a.title > b.title) ? -1 : 1);
}
self.isAscending = !self.isAscending;
}

关于javascript - 在同一次点击中按升序和降序对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56809727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com