第二次单击时反向排序 - Javascript
我有一个函数,可以在单击链接后对 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));
我的问题是让函数知道它需要哪种排序方式。我正在考虑使用布尔标志,但我似乎想不出任何有效的方法。我只是在寻找一种方法来跟踪它的排序方式,然后如果单击该按钮,它将使用第二个代码片段。 提前致谢!
I have a function that sorts a json array after a link is clicked (so the function is called using an onclick) and the function works and can sort:
function sortArch(a,b) {
x = eval("a." + sort_type).toLowerCase();
y = eval("b." + sort_type).toLowerCase();
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
When I click the same button I want the function to reverse sort. The reversing is easy enough:
x = eval("a." + sort_type).toLowerCase();
y = eval("b." + sort_type).toLowerCase();
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
My problem is having the function know which way it needs to sort. I was thinking of using a boolean flag, but I can't seem to come up with anything that works. I'm only looking for a way to keep track of which way it is sorted and then if the button is clicked it resorts with the second code snippet.
Thanks in advanced!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你可以这样做:
顺便说一句:不必要时尽量不要使用 eval,它既慢又乱
You could do something like this:
btw: try not to use eval when you don't have to, it is slow and messy
您即将完成:
使用示例:
干杯!
You're almost done:
Examples of use:
Cheers!
建议您使用布尔标志:
这也允许使用
sort()
cass,它会自动执行正常排序,因为undefined
是“falsy”。Your idea of using a boolean flag is recommended:
This also allows a
sort()
cass, which automatically does a normal sort sinceundefined
is "falsy".