apply: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " <!-- (DIS)?CONTINUE Notes -->" to "")
No edit summary
Line 9: Line 9:
| Applies given code to each element of the array and returns resulting array. The value of the current array element, to which the code will be applied, is stored in variable [[Magic Variables#x|_x]].
| Applies given code to each element of the array and returns resulting array. The value of the current array element, to which the code will be applied, is stored in variable [[Magic Variables#x|_x]].


| array '''apply''' code
|s1= array '''apply''' code


|p1= array: [[Array]] - array of [[Anything]]
|p1= array: [[Array]] - array of [[Anything]]
Line 15: Line 15:
|p2= code: [[Code]] - code to be executed on each element of the array. Current element value is stored in variable [[Magic Variables#x|_x]]
|p2= code: [[Code]] - code to be executed on each element of the array. Current element value is stored in variable [[Magic Variables#x|_x]]


| [[Array]] - resulting array
|r1= [[Array]] - resulting array
 
|s2= hashmap '''apply''' code
 
|p21= hashmap: [[HashMap]]
 
|p22= code: [[Code]] - code to be executed on each element of the hashmap. Current key is stored in variable [[Magic Variables#x|_x]], and the value is stored in variable [[Magic Variables#y|_y]]
 
|r2= [[Array]] - resulting array
   
   
|x1= <code>_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]</code>
|x1= <code>_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]</code>
Line 24: Line 32:


|x4= <code>[0,1,2,3,4] [[apply]] {[[str]] _x}; {{cc|Returns ["0","1","2","3","4"]}}</code>
|x4= <code>[0,1,2,3,4] [[apply]] {[[str]] _x}; {{cc|Returns ["0","1","2","3","4"]}}</code>
|x5= <code>_hashmap = [[createHashMapFromArray]] <nowiki>[["key", "value"]]</nowiki>;
_array = _hashmap [[apply]] {_y}; //["value"]


|seealso= [[set]], [[resize]], [[pushBack]], [[pushBackUnique]], [[select]], [[reverse]], [[count]], [[find]], [[in]], [[forEach]], [[deleteAt]], [[deleteRange]], [[append]], [[sort]], [[arrayIntersect]]
|seealso= [[set]], [[resize]], [[pushBack]], [[pushBackUnique]], [[select]], [[reverse]], [[count]], [[find]], [[in]], [[forEach]], [[deleteAt]], [[deleteRange]], [[append]], [[sort]], [[arrayIntersect]]

Revision as of 03:05, 19 May 2021

Hover & click on the images for description

Description

Description:
Description needed
Groups:
Arrays

Syntax

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

Alternative Syntax

Syntax:
hashmap apply code
Parameters:
hashmap: HashMap
code: Code - code to be executed on each element of the hashmap. Current key is stored in variable _x, and the value is stored in variable _y
Return Value:
Array - resulting array

Examples

Example 1:
_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:
_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:
_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}; // Returns ["0","1","2","3","4"]
Example 5:
_hashmap = createHashMapFromArray [["key", "value"]]; _array = _hashmap apply {_y}; //["value"]

Additional Information

See also:
setresizepushBackpushBackUniqueselectreversecountfindinforEachdeleteAtdeleteRangeappendsortarrayIntersect

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


Posted on February 18, 2016 - 11:03 (UTC)
Fusselwurm
(to anyone else wondering, I took a minute to get it): This is Array.map() in JavaScript
Posted on February 11, 2018 - 23:02 (UTC)
Lou Montana
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).