listSort: Difference between revisions
(Added a note about numeric lists per https://github.com/RPTools/maptool/issues/3878) |
m (Fix formatting on return value in example.) |
||
Line 35: | Line 35: | ||
Returns: | Returns: | ||
<syntaxhighlight lang="mtmacro" line> | |||
Unsorted list: Monster11,Monster3,Monster12,Monster66,Monster87,Monster71 | Unsorted list: Monster11,Monster3,Monster12,Monster66,Monster87,Monster71 | ||
Sorted list: Monster3, Monster11, Monster12, Monster66, Monster71, Monster87 | Sorted list: Monster3, Monster11, Monster12, Monster66, Monster71, Monster87 | ||
</syntaxhighlight> | |||
}} | }} | ||
[[Category:String List Function]] | [[Category:String List Function]] |
Latest revision as of 05:22, 21 March 2023
This article is a stub, you can help the RPTools Wiki project by contributing content to expand this article.
listSort() Function
Usage
[listSort(list, sortType)]
[listSort(list, sortType, delim)]
Parameters
list
- The list that is sorted.sortType
- The direction that this list is sorted. "A+" - alpha ascending, "A-" - alpha descending, "N-" - padded ending numbers descending alphadelim
- The delimiter used in the separate the list, defaults to","
.
The sortType determines the type of sort to use. If sortType is "A", normal alphabetic sorting is used, and "Monster11" comes before "Monster3". (Default behavior) If sortType is "N", the first number in each entry is effectively padded to 4 digits, so that "Monster3" comes before "Monster11". The sortType can have a second character of "+" or "-" to specify an ascending or descending sort.
Note about numeric lists: String list values are strings, not numbers. This function can sort lists of non-negative numbers correctly with or without prefixes such as "Monster1", "Monster2", etc. Negative numbers cannot be ordered in reverse order since the hyphen is viewed as a string prefix, not as a negation symbol. In other words, the string list "-5, 1, -3, 0" will be sorted to "-3, -5, 0, 1".
If you want to order a list of numbers, use json.sort on a JSON Array. For more information about this limitation, check the related issue on GitHub.
Example
[h: UnsortedList = "Monster11,Monster3,Monster12,Monster66,Monster87,Monster71"]
[h: SortedList = listSort(UnsortedList,'N')]
Unsorted list: [r: UnsortedList]<br>
Sorted list: [r: SortedList]
Returns:
Unsorted list: Monster11,Monster3,Monster12,Monster66,Monster87,Monster71
Sorted list: Monster3, Monster11, Monster12, Monster66, Monster71, Monster87