gpt4 book ai didi

javascript - 第二次单击时反向排序 - Javascript

转载 作者:行者123 更新时间:2023-11-28 16:31:41 27 4
gpt4 key购买 nike

我有一个函数,可以在单击链接后对 json 数组进行排序(因此使用 onclick 调用该函数)并且该函数可以工作并且可以排序:

function sortArch(a,b) {
x = eval("a." + sort_type).toLowerCase();
y = eval("b." + sort_type).toLowerCase();
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

当我单击同一个按钮时,我希望该功能进行反向排序。逆转很容易:

x = eval("a." + sort_type).toLowerCase();  
y = eval("b." + sort_type).toLowerCase();
return ((x < y) ? 1 : ((x > y) ? -1 : 0));

我的问题是让函数知道它需要哪种排序方式。我正在考虑使用 bool 标志,但我似乎想不出任何有效的方法。我只是在寻找一种方法来跟踪它的排序方式,然后如果单击该按钮,它将使用第二个代码片段。 提前致谢!

最佳答案

你可以这样做:

function mySort(desc) {
var mod = desc ? -1 : 1;
return function(a,b) {
var lca = a[sort_type].toLowerCase(),
lcb = b[sort_type].toLowerCase();
return lca > lcb ? 1 * mod : lca < lcb -1 * mod : 0;
}
}

arr.sort(mySort(true)); //sort descending
arr.sort(mySort(false)); //sort ascending

顺便说一句:不必要时尽量不要使用 eval,它既慢又乱

关于javascript - 第二次单击时反向排序 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5676974/

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