BIS fnc sortBy: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
(Page filling)
Line 1: Line 1:
{{Function|= Comments
{{Function|= Comments
____________________________________________________________________________________________
____________________________________________________________________________________________


| arma3 |= Game name
| arma3 |Game name=


|0.58|= Game version
|0.58|Game version=
____________________________________________________________________________________________
____________________________________________________________________________________________


| <pre>/*
| Sorts an array according to given algorithm. See [[sort]] for simple sorts. |Description=
 
____________________________________________________________________________________________
Description:
Sorts an array according to given algorithm.
 
Parameter(s):
_this select 0: any unsorted array (Array)
- array can contain any types (object/numbers/strings ..)
 
_this select 1: input parameters (Array)
- used in the eval algorithm (object/numbers/strings ..)
- input params are referenced in the sorting algorithm by _input0, _input1 .. _input9
- max. number of 10 input params is supported (0-9)
 
_this select 2: sorted algorithm (Code) [optional: default {_x}]
- code needs to return a scalar
- variable _x refers to array item


_this select 3: sort direction (String) [optional: default "ASCEND"]
| [array, parameters, algorithm, direction, filter] call [[BIS_fnc_sortBy]] |Syntax=
"ASCEND": sorts array in ascending direction (from lowest value to highest)
"DESCEND": sorts array in descending direction


_this select 4: filter (Code) [optional: default {true}]
|p1= array: [[Array]] - any unsorted array. Can contain any types |Parameter 1=
- code that needs to evaluate true for the array item to be sorted, otherwise item is removed


Returns:
|p2= parameters: [[Array]]
Array
* used in the eval algorithm
* input params are referenced in the sorting algorithm by _input0..9
* a maximum of 10 input params is supported (0-9) |Parameter 2=


Examples:
|p3= algorithm: [[Code]] - (Optional, default { [[_x]] })
* needs to return a [[Number]]
* [[_x]] refers to array item |Parameter 3=


//sort numbers from lowest to highest
|p4= direction: [[String]] - (Optional, default "ASCEND") case-insensitive
_sortedNumbers = [[1,-80,0,480,15,-40],[],{_x},"ASCEND"] call BIS_fnc_sortBy;
* "ASCEND" for ascending sorting
* "DESCEND" (or anything else) for descending sorting |Parameter 4=


//sort helicopters by distance from player
|p5= filter: [[Code]] - (Optional, default { [[true]] }) code that needs to evaluate true for the array item to be sorted, otherwise item is removed |Parameter 5=
_closestHelicopters = [[_heli1,_heli2,_heli3],[],{player distance _x},"ASCEND"] call BIS_fnc_sortBy;


//sort enemy by distance from friendly unit (referenced by local variable), the furthest first
| [[Array]] - sorted array |Return value=
_furtherstEnemy = [[_enemy1,_enemy2,_enemy3],[_friendly],{_input0 distance _x},"DESCEND",{canMove _x}] call BIS_fnc_sortBy;
*/
 
</pre><small>''(Placeholder description extracted from the function header by [[BIS_fnc_exportFunctionsToWiki]])''</small> |= Description
____________________________________________________________________________________________
____________________________________________________________________________________________


| <!-- [] call [[BIS_fnc_sortBy]]; --> |= Syntax
|x1= <code>{{codecomment|// sort numbers from lowest to highest}}
_sortedNumbers = <nowiki>[</nowiki>[1,-80,0,480,15,-40], [], {_x}, "ASCEND"] [[call]] [[BIS_fnc_sortBy]];</code> |Example 1=


|p1= |= Parameter 1
|x2= <code>{{codecomment|//sort helicopters by distance from player}}
_closestHelicopters = <nowiki>[</nowiki>[_heli1,_heli2,_heli3], [], { [[player]] [[distance]] _x }, "ASCEND"] [[call]] [[BIS_fnc_sortBy]];</code> |Example 2=


| |= Return value
|x3= <code>{{codecomment|//sort enemy by distance from friendly unit (referenced by local variable), the furthest first}}
_furtherstEnemy = <nowiki>[</nowiki>[_enemy1,_enemy2,_enemy3], [_friendly], { _input0 [[distance]] _x }, "DESCEND", { [[canMove]] _x }] [[call]] [[BIS_fnc_sortBy]];</code> |Example 3=
____________________________________________________________________________________________
____________________________________________________________________________________________


|x1= <code></code> |=
| [[BIS_fnc_sortAlphabetically]], [[BIS_fnc_sortNum]], [[sort]] |See also=
____________________________________________________________________________________________
 
| [[BIS_fnc_sortAlphabetically]], [[BIS_fnc_sortNum]], [[sort]] |= See also
 
}}
}}



Revision as of 13:32, 29 May 2018

Hover & click on the images for description

Description

Description:
Sorts an array according to given algorithm. See sort for simple sorts.
Execution:
call
Groups:
Uncategorised

Syntax

Syntax:
[array, parameters, algorithm, direction, filter] call BIS_fnc_sortBy
Parameters:
array: Array - any unsorted array. Can contain any types
parameters: Array
  • used in the eval algorithm
  • input params are referenced in the sorting algorithm by _input0..9
  • a maximum of 10 input params is supported (0-9)
algorithm: Code - (Optional, default { _x })
  • needs to return a Number
  • _x refers to array item
direction: String - (Optional, default "ASCEND") case-insensitive
  • "ASCEND" for ascending sorting
  • "DESCEND" (or anything else) for descending sorting
filter: Code - (Optional, default { true }) code that needs to evaluate true for the array item to be sorted, otherwise item is removed
Return Value:
Array - sorted array

Examples

Example 1:
// sort numbers from lowest to highest _sortedNumbers = [[1,-80,0,480,15,-40], [], {_x}, "ASCEND"] call BIS_fnc_sortBy;
Example 2:
//sort helicopters by distance from player _closestHelicopters = [[_heli1,_heli2,_heli3], [], { player distance _x }, "ASCEND"] call BIS_fnc_sortBy;
Example 3:
//sort enemy by distance from friendly unit (referenced by local variable), the furthest first _furtherstEnemy = [[_enemy1,_enemy2,_enemy3], [_friendly], { _input0 distance _x }, "DESCEND", { canMove _x }] call BIS_fnc_sortBy;

Additional Information

See also:
BIS_fnc_sortAlphabeticallyBIS_fnc_sortNumsort

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note

Notes

Bottom Section