apply

From Bohemia Interactive Community
Revision as of 15:11, 28 April 2023 by Lou Montana (talk | contribs) (Text replacement - "\[ *(https?:\/\/[^ = ]+) +([^= ]+) *\]" to "{{Link|$1|$2}}")
Jump to navigation Jump to search
Hover & click on the images for description

Description

Description:
Applies the given code to each element of the given data structure and collects the results in an array.
Groups:
ArraysHashMap

Syntax

Syntax:
array apply code
Parameters:
array: Array - Array of Anything
code: Code - code to be executed on each element of the array. The current element value is stored in the magic variable _x.
Return Value:
Array - resulting array

Alternative Syntax

Syntax:
hashmap apply code
Parameters:
hashmap: HashMap
code: Code - Code to be executed on each key-value pair of the hashmap. The current key is stored in the magic variable _x, the corresponding value is stored in _y.
Return Value:
Array - resulting array

Examples

Example 1:
private _arr = [1,2,3,4,5,6,7,8,9,0] apply { [1,0] select (_x % 2 == 0) }; // [1,0,1,0,1,0,1,0,1,0]
Example 2:
private _arr = [1,2,3,4,5,6,7,8,9,0] apply { _x ^ _x }; // [1,4,27,256,3125,46656,823543,16777216,387420480,1]
Example 3:
private _arr1 = []; _arr1 resize 20; _arr2 = _arr1 apply { 0 }; // [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
Example 4:
[0,1,2,3,4] apply { str _x }; // ["0","1","2","3","4"]
Example 5:
private _hashmap = createHashMapFromArray [["Key 1", "Value 1"], ["Key 2", "Value 2"]]; private _array = _hashmap apply { _y + " Test" }; // ["Value 2 Test","Value 1 Test"]

Additional Information

See also:
set resize pushBack pushBackUnique select reverse count find in forEach deleteAt deleteRange append sort arrayIntersect

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
Fusselwurm - c
Posted on Feb 18, 2016 - 11:03 (UTC)
(to anyone else wondering, I took a minute to get it) this is Array.map() in JavaScript
Lou Montana - c
Posted on Feb 11, 2018 - 23:02 (UTC)
if performance really is an issue, apply seems to be (very) slightly faster than forEach (by more or less one percent, 0.7-1.5% in my tests to be precise).