findIf: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "\|game([0-9]) ?= (.+) \|version([0-9]) ?= (.+) " to "|game$1= $2 |version$3= $4 ") |
Lou Montana (talk | contribs) m (Remove "you") |
||
Line 10: | Line 10: | ||
Code on the right side of the command is evaluated for each element of the array, processed element can be referenced in code as [[Magic Variables#x|_x]]. | Code on the right side of the command is evaluated for each element of the array, processed element can be referenced in code as [[Magic Variables#x|_x]]. | ||
{{Feature|Informative|[[findIf]] terminates as soon as it finds an element that fulfills the condition, thus it is more efficient than [[count]] in scenarios where | {{Feature|Informative|[[findIf]] terminates as soon as it finds an element that fulfills the condition, thus it is more efficient than [[count]] in scenarios where a check for presence / absence of at least one element should be done (See {{HashLink|#Example 2}}).}} | ||
|s1= array [[findIf]] code | |s1= array [[findIf]] code | ||
Line 23: | Line 23: | ||
|x2= <code>{{cc|two ways how to 'wait for all units to be dead':}} | |x2= <code>{{cc|two ways how to 'wait for all units to be dead':}} | ||
[[waitUntil]] { [unit1, unit2, unit3] [[findIf]] {[[alive]] [[Magic Variables#x|_x]]} == -1 }; {{cc|fast, terminates as soon as it finds a living unit}} | [[waitUntil]] { [unit1, unit2, unit3] [[findIf]] { [[alive]] [[Magic Variables#x|_x]] } == -1 }; {{cc|fast, terminates as soon as it finds a living unit}} | ||
[[waitUntil]] { {[[alive]] [[Magic Variables#x|_x]]} [[count]] [unit1, unit2, unit3] == 0 }; {{cc|slow, always goes through all array elements}}</code> | [[waitUntil]] { { [[alive]] [[Magic Variables#x|_x]] } [[count]] [unit1, unit2, unit3] == 0 }; {{cc|slow, always goes through all array elements}}</code> | ||
|seealso= [[find]] [[count]] | |seealso= [[find]] [[count]] | ||
}} | }} |
Revision as of 11:55, 29 August 2021
Description
- Description:
- Searches for an element within array for which the code evaluates to true.
Returns the zero-based index on success or -1 if not found.
Code on the right side of the command is evaluated for each element of the array, processed element can be referenced in code as _x. - Groups:
- Arrays
Syntax
- Syntax:
- array findIf code
- Parameters:
- array: Array - array to search in
- code: Code - code defining an element to find, processed element can be referenced within the code as _x
- Return Value:
- Number - Zero-based position of the first array element for which the code evaluate to true, -1 if not found
Examples
- Example 1:
[unit1, unit2, unit3] findIf {not alive _x}; // return index of the first dead unit)
- Example 2:
// two ways how to 'wait for all units to be dead': waitUntil { [unit1, unit2, unit3] findIf { alive _x } == -1 }; // fast, terminates as soon as it finds a living unit waitUntil { { alive _x } count [unit1, unit2, unit3] == 0 }; // slow, always goes through all array elements
Additional Information
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