我有一组<tr>
要分批排序的元素,即每个第 n 个元素用于在排序算法中进行比较,随后的 n-1 个元素与第 n 个元素一起移动。(更新:我应该澄清我无法控制 HTML)
在以下情况下,行按第 1、第 4 和第 7 个元素(即 Apple、Banana 和 Coconut)的值按字母顺序排序。随后的 2 个<tr>
元素将与它们一起移动,即 3 个批次。
排序前:
<tr> Banana </tr>
<tr> - Shake </tr>
<tr> - Chips </tr>
<tr> Apple </tr>
<tr> - Juice </tr>
<tr> - Sauce </tr>
<tr> Coconut </tr>
<tr> - Curry </tr>
<tr> - Water </tr>
排序后:
<tr> Apple </tr>
<tr> - Juice </tr>
<tr> - Sauce </tr>
<tr> Banana </tr>
<tr> - Shake </tr>
<tr> - Chips </tr>
<tr> Coconut </tr>
<tr> - Curry </tr>
<tr> - Water </tr>
有一些直接的方法,例如将其拆分为 3 个列表并正常对第一个列表进行排序。然后根据第一个列表对第二个和第三个进行排序。我的问题是,是否可以在比较功能中做到这一点array.sort([compareFunction])
?
更新:另一种方法是将其转换为这样的数组
[['Banana','- Shake', '- Chips'],['Apple', '- Juice','- Sauce'],['Coconut','- Curry', '- Water']]
并像这样排序sort(function(a, b) {return a[0] - b[0]})