append: Difference between revisions
Killzone Kid (talk | contribs)  (example)  | 
				Killzone Kid (talk | contribs)  No edit summary  | 
				||
| Line 65: | Line 65: | ||
[arr, 0] [[call]] KK_fnc_unshift; //both arr and return of function are [0,1,2,3]  | [arr, 0] [[call]] KK_fnc_unshift; //both arr and return of function are [0,1,2,3]  | ||
</code>  | </code>  | ||
</dd>  | |||
</dl>  | |||
<!-- DISCONTINUE Notes -->  | |||
<!-- CONTINUE Notes -->  | |||
<dl class="command_description">  | |||
<dd class="notedate">Posted on May 21, 2015 - 15:21 (UTC)</dd>  | |||
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>  | |||
<dd class="note">  | |||
Array "insert" implementation using [[append]], much faster alternative to [[BIS_fnc_arrayInsert]]:  | |||
<code>KK_fnc_insert <nowiki>=</nowiki> {  | |||
    [[private]] ["_arr", "_i", "_res"];  | |||
    _arr <nowiki>=</nowiki> _this [[select]] 0;  | |||
    _i <nowiki>=</nowiki> _this [[select]] 2;  | |||
    _res <nowiki>=</nowiki> [];  | |||
    _res [[append]] (_arr [[select]] [0, _i]);  | |||
    _res [[append]] (_this [[select]] 1);  | |||
    _res [[append]] (_arr [[select]] [_i, [[count]] _arr - _i]);  | |||
    _res  | |||
};  | |||
// Example  | |||
arr <nowiki>=</nowiki> [1,2,3,4];  | |||
[arr, ["a","b"], 2] [[call]] KK_fnc_insert; //[1,2,"a","b",3,4]</code>  | |||
</dd>  | </dd>  | ||
</dl>  | </dl>  | ||
<!-- DISCONTINUE Notes -->  | <!-- DISCONTINUE Notes -->  | ||
Revision as of 16:21, 21 May 2015
Description
- Description:
 - Appends array2 to the back of array1 modifying array1.
 - Groups:
 - Uncategorised
 
Syntax
Examples
Additional Information
- See also:
 - setpushBackresizereversecountfindinforEachdeleteAtdeleteRangesortBIS_fnc_arrayPushStackBIS_fnc_arrayPush
 
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 March 9, 2015 - 00:41 (UTC)
 - Heeeere's Johnny!
 - 
_array1 append _array2is roughly 1.2x 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. 
- Posted on May 21, 2015 - 10:27 (UTC)
 - Killzone Kid
 - 
Array "unshift" implementation using append, 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] 
- Posted on May 21, 2015 - 15:21 (UTC)
 - Killzone Kid
 - 
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]