pushBack: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(see also)
m (Text replacement - "<sqf>([^↵][^<]*↵[^<]*)<\/sqf>" to "<sqf> $1 </sqf>")
 
(85 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| arma3 |= Game name
|game1= arma3
|version1= 1.26


|1.26|= Game version
|gr1= Arrays


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


| Insert an element to the back of the given array. This command modifies the original array. |= Description
|s1= array [[pushBack]] element
____________________________________________________________________________________________


| array '''pushBack''' element|= Syntax
|p1= array: [[Array]]


|p1= array: [[Array]] |= Parameter 1
|p2= element: [[Anything]]


|p2= element: [[Anything]] |= Parameter 2
|r1= [[Number]] - index of inserted element


| [[Nothing]] (as of Arma 3 v1.29.127022, the return is [[Number]] - index of inserted element)|= Return value
|x1= <sqf>
____________________________________________________________________________________________
_arr = [1,2,3];
 
_arr pushBack 4;
|x1= <code>_arr = [1,2,3];
hint str _arr; //[1,2,3,4]
_arr [[pushBack]] 4;
</sqf>
[[hint]] [[str]] _arr; //[1,2,3,4]</code> |= Example 1
|x2= <sqf>
|x2= <code>_arr = [1,[2,4],3];
_arr = [1,[2,4],3];
(_arr [[select]] 1) [[pushBack]] [5,6];
(_arr select 1) pushBack [5,6];
_arr //[1,[2,4,[5,6]],3]</code> |= Example 2
hint str _arr //[1,[2,4,[5,6]],3]
____________________________________________________________________________________________
</sqf>


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


{{Note
|user= ffur2007slx2_5
|timestamp= 20140801211500
|text= (A3 1.26) It is recommended to use [[pushBack]] instead of [[BIS_fnc_arrayPush]].
<sqf>
_array = [1,2,3];
_array pushBack 4; //same as [_array, 4] call BIS_fnc_arrayPush;
</sqf>
}}
}}


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


<h3 style="display:none">Bottom Section</h3>
{{Note
|user= DreadedEntity
|timestamp= 20141126182500
|text= [[pushBack]] does not support [[nil]] while [[set]] and [[a plus b]] do. For example:
<sqf>
_array = [];
for "_i" from 0 to 3 do
{
_array pushBack nil;
};
hint str _array; //hint is []
</sqf>
}}


{{Note
|user= Killzone_Kid
|timestamp= 20150521105200
|text= Array "push" implementation using [[pushBack]], alternative to [[BIS_fnc_arrayPush]]
<sqf>
KK_fnc_push = {
_this select 0 pushBack (_this select 1);
_this select 0
};


[[Category:Arma_3:_New_Scripting_Commands_List|{{uc:{{PAGENAME}}}}]]
// Example
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
arr = [1,2,3];
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
[arr, 4] call KK_fnc_push; //both arr and return of function are now [1,2,3,4]
</sqf>
}}


<!-- CONTINUE Notes -->
{{Note
<dl class="command_description">
|user= OOKexOo
<dd class="notedate">Posted on August 23, 2014 - 21:35 (UTC)</dd>
|timestamp= 20161005021900
<dt class="note">[[User:Skaronator|Skaronator]]</dt>
|text= Note that [[pushBack]] does not create a new object.<br>
<dd class="note">
Therefore, if you edit an object that was pushed back to an array, it also affects the object in the array.
It's highly recommended to use the new [[pushBack]] command, up to 43% faster than [[set]] and up to '''11843%''' faster [[a plus b]]!
e.g.
</dd>
<sqf>
</dl>
_first_squence = [1,2,3];
<!-- DISCONTINUE Notes -->
_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]]]
</sqf>
If you pushBack an array for instance, you can just copy it to generate a new object.
e.g.<br>
<sqf>_first_squence pushBack +_second_squence;</sqf>
}}

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;