append: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Some wiki formatting)
m (Text replacement - "+" to "+")
 
(One intermediate revision by one other user not shown)
Line 23: Line 23:
</sqf>
</sqf>


|seealso= [[set]] [[pushBack]] [[pushBackUnique]] [[apply]] [[select]] [[resize]] [[reverse]] [[count]] [[deleteAt]] [[deleteRange]]
|seealso= [[set]] [[pushBack]] [[pushBackUnique]] [[insert]] [[+]] [[apply]] [[select]] [[resize]] [[reverse]] [[count]] [[deleteAt]] [[deleteRange]]
}}
}}



Latest revision as of 18:52, 9 August 2022

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]