append

From Bohemia Interactive Community
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Hover & click on the images for description

Description

Description:
Appends array2 to the back of array1 modifying array1. See insert for an "appendUnique" equivalent.
append does not return array, it modifies the existing array. If you need to return a copy, use "+":
array3 = array1 + array2;
Groups:
Arrays

Syntax

Syntax:
array1 append array2
Parameters:
array1: Array
array2: Array
Return Value:
Nothing

Examples

Example 1:
_arr = [1,2,3]; _arr append [4,5,6]; hint str _arr; // [1,2,3,4,5,6]

Additional Information

See also:
set pushBack pushBackUnique insert + apply select resize reverse count deleteAt deleteRange

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
Heeeere's Johnny! - c
Posted on Mar 09, 2015 - 00:41 (UTC)
_array1 append _array2;
is roughly 1.2× faster (depending on array size) than
_array1 = _array1 + _array2
(Averaged over 10.000 iterations with two identical arrays containing the numbers 0 through 9)
The larger the arrays to append, the faster append is as it does not create a new array, which happens with array addition.
Killzone_Kid - c
Posted on May 21, 2015 - 10:27 (UTC)
Array "unshift" implementation using append, a faster alternative to BIS_fnc_arrayUnShift:
KK_fnc_unshift = { private ["_arr", "_tmp"]; _arr = _this select 0; _tmp = [_this select 1]; _tmp append _arr; _arr resize 0; _arr append _tmp; _arr }; // Example arr = [1,2,3]; [arr, 0] call KK_fnc_unshift; // both arr and return of function are [0,1,2,3]
Killzone_Kid - c
Posted on May 21, 2015 - 15:21 (UTC)
Array "insert" implementation using append, much faster alternative to BIS_fnc_arrayInsert:
KK_fnc_insert = { private ["_arr", "_i", "_res"]; _arr = _this select 0; _i = _this select 2; _res = []; _res append (_arr select [0, _i]); _res append (_this select 1); _res append (_arr select [_i, count _arr - _i]); _res; }; // Example arr = [1,2,3,4]; [arr, ["a","b"], 2] call KK_fnc_insert; // [1,2,"a","b",3,4]
Killzone_Kid - c
Posted on May 21, 2015 - 15:52 (UTC)
A faster alternative to BIS_fnc_arrayPushStack using append:
KK_fnc_pushStack = { _this select 0 append (_this select 1); _this select 0 }; // Example arr = [1,2,3]; [arr, [4,5,6]] call KK_fnc_pushStack; // both arr and function return are [1,2,3,4,5,6]