gpt4 book ai didi

javascript - JS 按多个约束排序

转载 作者:行者123 更新时间:2023-11-30 08:29:06 24 4
gpt4 key购买 nike

我有一个元素数组如下:

var a = [
<tr data-order=​"0" data-time=​"840">​…​</tr>​,
<tr data-order=​"0" data-time=​"60">​…​</tr>​,
<tr data-order=​"1" data-time=​"10">​…​</tr>​,
<tr data-order=​"2" data-time=​"20">​…​</tr>​,
<tr data-order=​"3" data-time=​"15">​…​</tr>​,
<tr data-order=​"4" data-time=​"40">​…​</tr>​,
<tr data-order=​"5" data-time=​"30">​…​</tr>​,
<tr data-order=​"6" data-time=​"1320">​…​</tr>​
]

我想根据data-order 以及data-time 对它们进行排序。我能够实现的是:

a.sort(function(m, n) {
return parseInt( $(m).attr("data-order") ) - parseInt( $(n).attr("data-order") )
});

这给我的元素按日期顺序排序,但对于相同的日期顺序,我希望它按日期时间排序。

如何按多个属性排序?

最佳答案

如果差异为零(即值相同),则进行第二次比较。您可以使用 logical OR (||)以减少行数。要获取 data-* 属性,请使用 data()方法,不需要解析它,因为我们正在取差。

a.sort(function(m, n) {
return $(m).data('order') - $(n).data('order') || $(m).data('time') - $(n).data('time');
});

引用:What does the construct x = x || y mean?

关于javascript - JS 按多个约束排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40628900/

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