pushBack: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " *\| *([Cc]omments|COMMENTS|Game|[Gg]ame [Nn]ame|Game [Vv]ersion|Game Version \(number surrounded by NO SPACES\)|Multiplayer Arguments( \("local" or "global"\))?|Effects|Multiplayer Effects( \("local" or "global"\))?|Multiplayer Exe...)
m (Text replacement - "<sqf>([^↵][^<]*↵[^<]*)<\/sqf>" to "<sqf> $1 </sqf>")
 
(60 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Command
{{RV|type=command


| arma3
|game1= arma3
 
|version1= 1.26
|1.26


|gr1= Arrays
|gr1= Arrays


| Insert an element to the back of the given array. This command modifies the original array. (see also: [[pushBackUnique]])
|descr= Insert an element to the back of the given array. This command modifies the original array. (see also: [[pushBackUnique]])


| array '''pushBack''' element
|s1= array [[pushBack]] element


|p1= array: [[Array]]
|p1= array: [[Array]]
Line 15: Line 14:
|p2= element: [[Anything]]
|p2= element: [[Anything]]


| [[Number]] - index of inserted element
|r1= [[Number]] - index of inserted element
 
|x1= <code>_arr = [1,2,3];
_arr [[pushBack]] 4;
[[hint]] [[str]] _arr; //[1,2,3,4]</code>
|x2= <code>_arr = [1,[2,4],3];
(_arr [[select]] 1) [[pushBack]] [5,6];
[[hint]] [[str]] _arr //[1,[2,4,[5,6]],3]</code>


| [[pushBackUnique]], [[select]], [[set]], [[resize]], [[reverse]], [[count]], [[find]], [[in]], [[forEach]], [[deleteAt]], [[deleteRange]], [[append]], [[sort]], [[arrayIntersect]], [[apply]], [[BIS_fnc_arrayPushStack]], [[BIS_fnc_arrayPush]]
|x1= <sqf>
_arr = [1,2,3];
_arr pushBack 4;
hint str _arr; //[1,2,3,4]
</sqf>
|x2= <sqf>
_arr = [1,[2,4],3];
(_arr select 1) pushBack [5,6];
hint str _arr //[1,[2,4,[5,6]],3]
</sqf>


|seealso= [[pushBackUnique]] [[select]] [[set]] [[resize]] [[reverse]] [[count]] [[find]] [[in]] [[forEach]] [[deleteAt]] [[deleteRange]] [[append]] [[sort]] [[arrayIntersect]] [[apply]] [[BIS_fnc_arrayPushStack]] [[BIS_fnc_arrayPush]]
}}
}}


<h3 style="display:none">Notes</h3>
{{Note
<dl class="command_description">
|user= ffur2007slx2_5
<!-- Note Section BEGIN -->
|timestamp= 20140801211500
<dd class="notedate">Posted on Aug 1, 2014 - 21:15
|text= (A3 1.26) It is recommended to use [[pushBack]] instead of [[BIS_fnc_arrayPush]].
<dt class="note">[[User:ffur2007slx2_5|ffur2007slx2_5]]<dd class="note">
<sqf>
(A3 1.26) It is recommended to use [[pushBack]] instead of [[BIS_fnc_arrayPush]].
_array = [1,2,3];
<code>_array = [1,2,3];
_array pushBack 4; //same as [_array, 4] call BIS_fnc_arrayPush;
_array [[pushBack]] 4; //same as [_array, 4] [[call]] [[BIS_fnc_arrayPush]];
</sqf>
</code>
}}
<!-- Note Section END -->
</dl>


<h3 style="display:none">Bottom Section</h3>
{{Note
 
|user= Skaronator
 
|timestamp= 20140823213500
{{GameCategory|arma3|New Scripting Commands}}
|text= It's highly recommended to use the new [[pushBack]] command, up to 43% faster than [[set]] and up to '''11843%''' faster [[a plus b]]!
{{GameCategory|arma3|Scripting Commands}}
}}
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
 
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on August 23, 2014 - 21:35 (UTC)</dd>
<dt class="note">[[User:Skaronator|Skaronator]]</dt>
<dd class="note">
It's highly recommended to use the new [[pushBack]] command, up to 43% faster than [[set]] and up to '''11843%''' faster [[a plus b]]!
</dd>
</dl>
<!-- DISCONTINUE Notes -->


<!-- CONTINUE Notes -->
{{Note
<dl class="command_description">
|user= DreadedEntity
<dd class="notedate">Posted on November 26, 2014 - 18:25 (UTC)</dd>
|timestamp= 20141126182500
<dt class="note">[[User:DreadedEntity|DreadedEntity]]</dt>
|text= [[pushBack]] does not support [[nil]] while [[set]] and [[a plus b]] do. For example:
<dd class="note">
<sqf>
[[pushBack]] does not support [[nil]] while [[set]] and [[a plus b]] do. For example:
_array = [];
<code>_array = [];
for "_i" from 0 to 3 do
[[for]] "_i" [[from]] 0 [[to]] 3 [[do]]
{
{
_array [[pushBack]] [[nil]];
_array pushBack nil;
};
};
[[hint]] [[str]] _array; //[[hint]] is []</code>
hint str _array; //hint is []
</dd>
</sqf>
</dl>
}}
<!-- DISCONTINUE Notes -->


<!-- CONTINUE Notes -->
{{Note
<dl class="command_description">
|user= Killzone_Kid
<dd class="notedate">Posted on May 21, 2015 - 10:52 (UTC)</dd>
|timestamp= 20150521105200
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
|text= Array "push" implementation using [[pushBack]], alternative to [[BIS_fnc_arrayPush]]
<dd class="note">
<sqf>
Array "push" implementation using [[pushBack]], alternative to [[BIS_fnc_arrayPush]]
KK_fnc_push = {
<code>KK_fnc_push <nowiki>=</nowiki> {
_this select 0 pushBack (_this select 1);
_this [[select]] 0 [[pushBack]] (_this [[select]] 1);
_this select 0
_this [[select]] 0
};
};


// Example
// Example
arr <nowiki>=</nowiki> [1,2,3];
arr = [1,2,3];
[arr, 4] [[call]] KK_fnc_push; //both arr and return of function are now [1,2,3,4]</code>
[arr, 4] call KK_fnc_push; //both arr and return of function are now [1,2,3,4]
</dd>
</sqf>
</dl>
}}
<!-- DISCONTINUE Notes -->


<!-- CONTINUE Notes -->
{{Note
<dl class="command_description">
|user= OOKexOo
<dd class="notedate">Posted on October 5, 2016 - 02:19 (UTC)</dd>
|timestamp= 20161005021900
<dt class="note">[[User:OOKexOo|OOKexOo]]</dt>
|text= Note that [[pushBack]] does not create a new object.<br>
<dd class="note">
Note that [[pushBack]] does not create a new object.<br>
Therefore, if you edit an object that was pushed back to an array, it also affects the object in the array.
Therefore, if you edit an object that was pushed back to an array, it also affects the object in the array.
e.g.<br>
e.g.
<code>_first_squence = [1,2,3];
<sqf>
_first_squence = [1,2,3];
_second_squence = [5,4];
_second_squence = [5,4];


_first_squence [[pushBack]] _second_squence;
_first_squence pushBack _second_squence;
systemChat str _first_squence // prints [1,2,3,[5,4]]]
systemChat str _first_squence // prints [1,2,3,[5,4]]]


reverse _second_squence;
reverse _second_squence;
systemChat str _first_squence // prints [1,2,3,[4,5]]]
systemChat str _first_squence // prints [1,2,3,[4,5]]]
</code><br>
</sqf>
If you pushBack an array for instance, you can just copy it to generate a new object.
If you pushBack an array for instance, you can just copy it to generate a new object.
e.g.<br>
e.g.<br>
<code>_first_squence [[pushBack]] +_second_squence;
<sqf>_first_squence pushBack +_second_squence;</sqf>
</code>
}}
</dd>
</dl>
<!-- DISCONTINUE Notes -->

Latest revision as of 19:42, 3 September 2024

Hover & click on the images for description

Description

Description:
Insert an element to the back of the given array. This command modifies the original array. (see also: pushBackUnique)
Groups:
Arrays

Syntax

Syntax:
array pushBack element
Parameters:
array: Array
element: Anything
Return Value:
Number - index of inserted element

Examples

Example 1:
_arr = [1,2,3]; _arr pushBack 4; hint str _arr; //[1,2,3,4]
Example 2:
_arr = [1,[2,4],3]; (_arr select 1) pushBack [5,6]; hint str _arr //[1,[2,4,[5,6]],3]

Additional Information

See also:
pushBackUnique select set resize reverse count find in forEach deleteAt deleteRange append sort arrayIntersect apply BIS_fnc_arrayPushStack BIS_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
ffur2007slx2_5 - c
Posted on Aug 01, 2014 - 21:15 (UTC)
(A3 1.26) It is recommended to use pushBack instead of BIS_fnc_arrayPush.
_array = [1,2,3]; _array pushBack 4; //same as [_array, 4] call BIS_fnc_arrayPush;
Skaronator - c
Posted on Aug 23, 2014 - 21:35 (UTC)
It's highly recommended to use the new pushBack command, up to 43% faster than set and up to 11843% faster a plus b!
DreadedEntity - c
Posted on Nov 26, 2014 - 18:25 (UTC)
pushBack does not support nil while set and a plus b do. For example:
_array = []; for "_i" from 0 to 3 do { _array pushBack nil; }; hint str _array; //hint is []
Killzone_Kid - c
Posted on May 21, 2015 - 10:52 (UTC)
Array "push" implementation using pushBack, alternative to BIS_fnc_arrayPush
KK_fnc_push = { _this select 0 pushBack (_this select 1); _this select 0 }; // Example arr = [1,2,3]; [arr, 4] call KK_fnc_push; //both arr and return of function are now [1,2,3,4]
OOKexOo - c
Posted on Oct 05, 2016 - 02:19 (UTC)
Note that pushBack does not create a new object.
Therefore, if you edit an object that was pushed back to an array, it also affects the object in the array. e.g.
_first_squence = [1,2,3]; _second_squence = [5,4]; _first_squence pushBack _second_squence; systemChat str _first_squence // prints [1,2,3,[5,4]]] reverse _second_squence; systemChat str _first_squence // prints [1,2,3,[4,5]]]
If you pushBack an array for instance, you can just copy it to generate a new object. e.g.
_first_squence pushBack +_second_squence;