【发布时间】:2013-12-13 20:26:59
【问题描述】:
我试图在 JS 中找到一种方法来对数组进行排序,而无需实际更改元素的顺序,但更像是“分组”功能。
样本数据:
[
{group: 'test', title: 'A'},
{group: 'test', title: 'B'},
{group: 'test2', title: 'C'},
{group: 'test', title: 'D'}
]
我的想法是按照我的最终订单的方式进行[].sort():
[
{group: 'test', title: 'A'},
{group: 'test', title: 'B'},
{group: 'test', title: 'D'},
{group: 'test2', title: 'C'}
]
意思是:我没有改变前两项的顺序,只是因为他们的分组而切换了#3和#4。如果我使用经典的localeCompare,我最终会根据我不想要的价值恢复我的组,他们的顺序应该保留。
编辑:考虑到答案,我想再次澄清我确实不想要更改组的顺序,这意味着它们应该不按字母顺序排序但相反,它们应该按它们出现的顺序分组。
【问题讨论】:
-
您不只是按
group值排序,还是我遗漏了什么? -
关于稳定排序,请查看:stackoverflow.com/questions/3026281/….
标签: javascript sorting