Arma 3 Scripting

findIf

  • Arma 3 v1.82

Command · Markdown · JSON · original wiki page

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.

Note

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 #Example 2).

Syntax

array findIf code

Parameters:

Returns: Number - zero-based position of the first array element for which the code evaluate to true, -1 if not found

Examples

Example 1

private _firstDead = [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

See also

find · count