count: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "\| *((\[\[[a-zA-Z0-9_ |()]+\]\],? ?)+) * \}\}" to "|seealso= $1 }}") |
Lou Montana (talk | contribs) |
||
Line 29: | Line 29: | ||
|s2= condition [[count]] array | |s2= condition [[count]] array | ||
|p21= condition: [[Code]] that must return [[true]] for the tested element to be counted. The variable <tt>[[_x]]</tt> will contain the currently tested element. | |p21= condition: [[Code]] that must return [[true]] for the tested element to be counted. The variable <tt>[[Magic Variables#x|_x]]</tt> will contain the currently tested element. | ||
|p22= array: [[Array]] | |p22= array: [[Array]] | ||
Line 38: | Line 38: | ||
[[count]] [[units]] [[group]] [[player]]; {{cc|returns number of units in player group}}</code> | [[count]] [[units]] [[group]] [[player]]; {{cc|returns number of units in player group}}</code> | ||
|x2= <code>[[private]] _cnt = { [[_x]] == 4 } [[count]] [1, 9, 8, 3, 4, 4, 4, 5, 6]; {{cc|returns 3}} | |x2= <code>[[private]] _cnt = { [[Magic Variables#x|_x]] == 4 } [[count]] [1, 9, 8, 3, 4, 4, 4, 5, 6]; {{cc|returns 3}} | ||
_cnt = { [[alive]] [[_x]] } [[count]] [[allUnits]]; {{cc|returns the number of alive units}}</code> | _cnt = { [[alive]] [[Magic Variables#x|_x]] } [[count]] [[allUnits]]; {{cc|returns the number of alive units}}</code> | ||
|x3= <code>[[private]] _cnt = [[count]] ([[configFile]] [[config greater greater name|>>]] "CfgVehicles");</code> | |x3= <code>[[private]] _cnt = [[count]] ([[configFile]] [[config greater greater name|>>]] "CfgVehicles");</code> |
Revision as of 12:57, 25 February 2021
Description
- Description:
- Description needed
- Groups:
- ArraysStringsConfigHashMap
Syntax
- Syntax:
- Syntax needed
- Parameters:
- array: Array, String, Config or HashMap
- Return Value:
- Return value needed
Alternative Syntax
- Syntax:
- condition count array
- Parameters:
- condition: Code that must return true for the tested element to be counted. The variable _x will contain the currently tested element.
- array: Array
- Return Value:
- Number
Examples
- Example 1:
count [0, 0, 1, 2]; // returns 4 count units group player; // returns number of units in player group
- Example 2:
private _cnt = { _x == 4 } count [1, 9, 8, 3, 4, 4, 4, 5, 6]; // returns 3 _cnt = { alive _x } count allUnits; // returns the number of alive units
- Example 3:
private _cnt = count (configFile >> "CfgVehicles");
- Example 4:
hint str count "japa is the man!"; // 16
- Example 5:
if (count _myHashMap < 1) then { hint "empty hashmap!"; };
Additional Information
- See also:
- setresizepushBackpushBackUniqueapplyselectreverseselectinfindtoArraytoStringforEachdeleteAtdeleteRangeappendsortparamparamsarrayIntersectcountFriendlycountEnemycountUnknowncountSidecountTypesplitStringjoinStringfindIfforceUnicode
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
- Posted on April 28, 2007 - 13:49
- Kronzky
-
This conditional count command only works if all the elements in the tested array are of the same type as the tested element.
For example, the following code will created an error, since the elements are of different types (object, number, string):_arr = [player,100,"one"]; {_x == "one"} count _arr;
- Alternatively, to avoid the error use isEqualTo instead of ==. --KK
- Alternatively, to avoid the error use isEqualTo instead of ==. --KK
_arr = ["one","two","three"]; {_x == "one"} count _arr;
- Posted on August 3, 2006 - 14:27
- hardrock
- Notes from before the conversion:
Use this to calculate how many "M16" mags a soldier has left.{ _x == "M16" } count magazines soldier1;
Take care when using count to determine how many units are left alive in a group: count units group player or count units groupname Will return the number of units the leader of the group thinks are alive. If some units have been killed out of sight of other members of the group then it may take sometime for this to be the actual numbers in the group. To determine exactly how many units are really alive in a group use:{ alive _x } count units group player;
or{ alive _x } count units groupname;
- Posted on December 15, 2014 - 00:01 (UTC)
- Heeeere's Johnny!
-
count can be (ab)used for a very fast and simple check if at least one element in an array fulfills a certain condition:
if ({ if (_x fulfills condition) exitWith {1}; false } count _array isEqualTo 1) then { // do whatever here };
This code will exit the count loop as soon as it finds an element fulfilling the condition, leaving the count with the value of 1, hence make the larger if-condition be true.
If no array element fulfills the condition, the count will be 0 and the if-condition will be false. - Posted on December 29, 2014 - 21:23 (UTC)
- Killzone Kid
-
Quit loop at first fulfilled condition (same as above but faster):
{if (_x == 4) exitWith { // do something when we reach 4 }} count [1,2,3,4,5,6];
- Posted on January 2, 2015 - 22:32 (UTC)
- Heeeere's Johnny!
-
Using exitWith inside a count loop will overwrite the default functionality and make count return whatever the exitWith returns:
_result = { if (_x isEqualTo 3) exitWith { "Hello" } } count [1,2,3,4,5]; // _result = "Hello"
- Posted on August 22, 2016 - 19:41 (UTC)
- Ebay
-
With the alternative syntax each iteration should result in an interior return of bool or nothing. Example:
createDialog "RscFunctionsViewer"; { lbAdd [292901, _x]; } count ["first", "second", "third"];
lbAdd returns a number, so this throws "Error Type Number, expected Bool". Tested in A2OA 1.63.131129
Categories:
- Stubs
- Scripting Commands
- Command Group: Arrays
- Command Group: Strings
- Command Group: Config
- Command Group: HashMap
- Scripting Commands OFP 1.46
- Scripting Commands OFP 1.96
- Scripting Commands OFP 1.99
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 3: Scripting Commands
- Take On Helicopters: Scripting Commands