gpt4 book ai didi

javascript - 如何修改此函数以包含上升和下降功能?

转载 作者:行者123 更新时间:2023-12-02 17:07:31 24 4
gpt4 key购买 nike

我想订购我的表的后代,所以我有这个上升函数:

var compareUser = function (a, b) {
if (a.username < b.username) {
return -1;
}
else if (a.username > b.username) {
return 1;
}
return 0;

};

如何修改它以包含后代/上升函数?

这就是我调用该函数的方式:

      $(".theadUser").on('click', function () {
userData.sort(compareUser);
$('.theadUser').removeClass('headerUnSorted');
$('.theadUser').addClass('headerAsc');
console.log(userData);
$("#users").html('');
buildTable();
});

我希望当我第一次单击按钮时对上升顺序进行排序,当我再次单击按钮时对后代进行排序。

最佳答案

考虑一个可用于创建“反向”比较函数的函数:

function reverseCompare (fn) {
return function (a, b) {
// call original, reverse result
return fn(a, b) * -1;
// alternative as suggested by Alnitak, reverse arguments
// return fn(b, a)
}
}

在基本形式中,它可以像这样使用:

userData.sort(compareUser);                 // ascending/normal
userData.sort(reverseCompare(compareUser)); // descending/reversed

应用到代码中,可能会是这样的:

var $t = $('.theadUser');
var sortedAsc = $t.hasClass('headerAsc');
if (!sortedAsc) {
// not current sorted ascending, sort ascending
userData.sort(compareUser);
$t.removeClass('headerUnSorted headerDesc')
.addClass('headerAsc');
} else {
userData.sort(reverseCompare(compareUser));
$t.removeClass('headerUnSorted headerAsc')
.addClass('headerDesc');
}

关于javascript - 如何修改此函数以包含上升和下降功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25114654/

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