forEach: Difference between revisions

From Bohemia Interactive Community
m (<pre> to <code> plus linking to Magic Variables plus tidied note)
Line 9: Line 9:
| Executes the given command(s) on every item of an array.
| Executes the given command(s) on every item of an array.


The array items are represented by _x. The array indices are represented by _forEachIndex.
The array items are represented by the [[Magic Variables|magic variable]] '''_x'''. The array indices are represented by '''_forEachIndex'''.


In ArmA2 & VBS2, the variable _x is always local to the forEach block so it is safe to nest them.
In ArmA2 & VBS2, the variable _x is always local to the forEach block so it is safe to nest them.
Line 24: Line 24:
____________________________________________________________________________________________
____________________________________________________________________________________________
   
   
|x1= <pre>{_x setdammage 1} forEach units group player</pre> |= Example 1
|x1= <code>{_x [[setDammage]] 1;} [[forEach]] [[units]] [[group]] [[player]];</code> |= Example 1


|x2= This command can also easily be used to execute a single command multiple times without respect to the array items.
|x2= This command can also easily be used to execute a single command multiple times without respect to the array items.
<pre>{player addMagazine "M16"} forEach [1,2,3,4]</pre> |= Example 2
<code>{[[player]] [[addMagazine]] "M16";} [[forEach]] [1, 2, 3, 4];</code> |= Example 2


|x3= You can also use multiple commands in the same block.
|x3= You can also use multiple commands in the same block.
<pre>{_x setCaptive true; removeAllWeapons _x; doStop _x;} forEach units group this</pre> |= Example 3
<code>{_x [[setCaptive]] [[true]]; [[removeAllWeapons]] _x; [[doStop]] _x;} [[forEach]] [[units]] [[group]] [[this]]</code> |= Example 3
____________________________________________________________________________________________
____________________________________________________________________________________________


Line 45: Line 45:
<dd class="note">
<dd class="note">
If arrays are used in forEach loops, _x uses them by reference, so any changes to _x will be applied to the original:
If arrays are used in forEach loops, _x uses them by reference, so any changes to _x will be applied to the original:
_arr1 = [1,2,3];
<pre>_arr1 = [1,2,3];
_arr2 = [6,7,8];
_arr2 = [6,7,8];
{_x set [1,"x"]} forEach [_arr1,_arr2];
{_x set [1,"x"]} forEach [_arr1,_arr2];</pre>
will change _arr1 to [1,"x",3], and _arr2 to [6,"x",8].
will change ''_arr1'' to ''[1,"x",3]'', and ''_arr2'' to ''[6,"x",8]''.





Revision as of 04:35, 19 March 2014

Hover & click on the images for description

Description

Description:
Executes the given command(s) on every item of an array. The array items are represented by the magic variable _x. The array indices are represented by _forEachIndex. In ArmA2 & VBS2, the variable _x is always local to the forEach block so it is safe to nest them.
Groups:
Uncategorised

Syntax

Syntax:
command forEach array
Parameters:
command: String
array: Array
Return Value:
Nothing

Examples

Example 1:
{_x setDammage 1;} forEach units group player;
Example 2:
This command can also easily be used to execute a single command multiple times without respect to the array items. {player addMagazine "M16";} forEach [1, 2, 3, 4];
Example 3:
You can also use multiple commands in the same block. {_x setCaptive true; removeAllWeapons _x; doStop _x;} forEach units group this

Additional Information

See also:
countControl Structures

Notes

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

Notes

Posted on July 20, 2010
Kronzky
If arrays are used in forEach loops, _x uses them by reference, so any changes to _x will be applied to the original:
_arr1 = [1,2,3];
_arr2 = [6,7,8];
{_x set [1,"x"]} forEach [_arr1,_arr2];

will change _arr1 to [1,"x",3], and _arr2 to [6,"x",8].


Bottom Section