自定义列表排序 [英] Custom List sorting
本文介绍了自定义列表排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好,我有一个包含 [每日,每月,每周]
或 [每月,每周,每日]元素的列表
或 [每周,每天]
我需要以这种方式对列表进行排序
[每日,每月,每周] == [每日,每月,每周]
[每日] == [每日,每月,每周]
[每周,每日] == [每日,每周]
有人可以帮我解决这个问题。
customSorter = {
['daily','monthly','每周'] .indexOf(it)
}
assert ['daily','monthly','weekly'] .sort(customSorter)== ['daily','monthly' ,'weekly']
assert ['monthly','weekly','daily'] .sort(customSorter)== ['daily','monthly','weekly']
assert [''每周,每日'] .sort(customSorter)== ['daily','weekly']
或者你可以做到这一点(以避免反复创建一个列表)
customSorter = {a,b,order = ['daily','每月','每周'] - >
order.indexOf(a)< => order.indexOf(b)
}
Hi I have a list which contains elements [daily,monthly,weekly]
or [monthly,weekly,daily]
or [weekly,daily]
I need to sort the list in such a way that
[daily,monthly,weekly] == [daily,monthly,weekly]
[monthly, weekly, daily] == [daily, monthly, weekly]
[weekly, daily] == [daily, weekly]
Can some one please help me in this
解决方案
Assuming you mean that you have a list of Strings, then this should work:
customSorter = {
[ 'daily', 'monthly', 'weekly' ].indexOf( it )
}
assert [ 'daily', 'monthly', 'weekly' ].sort( customSorter ) == [ 'daily', 'monthly', 'weekly' ]
assert [ 'monthly', 'weekly', 'daily' ].sort( customSorter ) == [ 'daily', 'monthly', 'weekly' ]
assert [ 'weekly', 'daily' ].sort( customSorter ) == [ 'daily', 'weekly' ]
Or you could do this (to avoid repeatedly creating a List)
customSorter = { a, b, order=['daily','monthly','weekly'] ->
order.indexOf( a ) <=> order.indexOf( b )
}
这篇关于自定义列表排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文