count: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (see also)
(a better workaround to kronzky note since there is another command is available)
Line 52: Line 52:
____________________________________________________________________________________________
____________________________________________________________________________________________


| [[set]], [[resize]], [[pushBack]], [[reverse]], [[select]], [[in]], [[find]], [[toArray]], [[toString]], [[forEach]], [[in Array]], [[BIS_fnc_conditionalSelect]] |= See also
| [[set]], [[resize]], [[pushBack]], [[reverse]], [[select]], [[in]], [[find]], [[toArray]], [[toString]], [[forEach]], [[in Array]] |= See also


}}
}}
Line 63: Line 63:
This conditional count command ''only'' works if all the elements in the tested array are of the same [[Data Types|type]] as the tested element.<br>
This conditional count command ''only'' works if all the elements in the tested array are of the same [[Data Types|type]] as the tested element.<br>
For example, the following code will created an error, since the elements are of different types (object, number, string):
For example, the following code will created an error, since the elements are of different types (object, number, string):
<code>_arr = [ [[player]],100,"one"]; {_x == "one"} [[count]] _arr; //So use [[BIS_fnc_conditionalSelect]] if we wanna to differ types:
<code>_arr = [ [[player]],100,"one"]; {_x == "one"} [[count]] _arr;</code>
[_arr,{[[typeName]] _x == "STRING"}] call [[BIS_fnc_conditionalSelect]];//Return ["one"]</code>
::Alternatively, to avoid the error use [[isEqualTo]] instead of ==. --KK<br>
This one, on the other hand, where all elements are strings, just like the tested element, will return the correct result of 1:
This one, on the other hand, where all elements are strings, just like the tested element, will return the correct result of 1:
<code>_arr = ["one","two","three"]; {_x == "one"} [[count]] _arr;</code>
<code>_arr = ["one","two","three"]; {_x == "one"} [[count]] _arr;</code>

Revision as of 09:24, 4 August 2014

Hover & click on the images for description

Description

Description:
Returns a count for either
  • the number of elements in array
  • the number of elements in array for which given condition is true
  • the number of sub-entries in a config object
Groups:
Uncategorised

Syntax

Syntax:
condition count array
Parameters:
condition: (optional) Code that must return true to be counted.
The variable _x will contain the currently tested element.
array: Array
Return Value:
Number

Alternative Syntax

Syntax:
count configname
Parameters:
configname: Config
Return Value:
Number

Examples

Example 1:
_cnt = count [0, 0, 1, 2]; // returns 4
Example 2:
_cnt = count units group player; // returns number of units in player group
Example 3:
_fnd = [1, 9, 8, 3, 4, 4, 4, 5, 6]; { _x == 4; } count _fnd; // returns 3
Example 4:
_alive = { alive _x; } count allUnits; // returns the number of living units
_cnt = count (configFile >> "CfgVehicles");

Additional Information

See also:
setresizepushBackreverseselectinfindtoArraytoStringforEachin Array

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

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
This one, on the other hand, where all elements are strings, just like the tested element, will return the correct result of 1: _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;

Bottom Section