BIS fnc addToPairs: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (template:command argument fix)
m (Text replacement - "{{Feature|Informative|" to "{{Feature|informative|")
 
(29 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{RV|type=function


{{Function|= Comments
|game1= arma3
____________________________________________________________________________________________
|version1= 0.76


| arma3 |= Game name
|gr1= Arrays


|0.76|= Game version
|descr= Adds given value to pair array, stored under unique key.<br><br>
____________________________________________________________________________________________


| <pre>/*
If value is found:<br>
a) both values are scalars: values are added and stored as a single scalar<br>
b) one or both values are array: values are added and stored as a single array<br>
c) anything else: an array is created and both values are stored there<br><br>


Description:
{{Feature|informative|Function by default modifies the input array. This can be overrriden by setting '_copyArray' param to true.}}
Adds given value to pair array, stored under unique key.


If value is found:
|s1= [array, key, value, copyArray] call [[BIS_fnc_addToPairs]]
a) both values are scalars: values are added and stored as a single scalar
b) one or both values are array: values are added and stored as a single array
c) anything else: an array is created and both values are stored there


Remarks:
|p1= array: [[Array]] - array to search through
Function by default modifies the input array. This can be overrriden by setting '_copyArray' param to true.


Syntax:
|p2= key: [[String]] - key to search for
_pairs:array = [_pairs:array,_key:string,_value:number,_copyArray:bool] call BIS_fnc_addToPairs;


Example:
|p3= value: [[Number]] - (Optional, default [[nil]]) default return value if no match was found
[["apple",3],["pear",12]] = [[["apple",3],["pear",2]],"pear",10] call BIS_fnc_addToPairs;
[["apple",1],["pear",2]] = [[["apple",3],["pear",2]],"apple",-2] call BIS_fnc_addToPairs;
[["greetings",["Hello!","Hi!"]],["rudewords",""]] = [[["greetings","Hello!"],["rudewords",""]],"greetings","Hi!"] call BIS_fnc_addToPairs;
*/


#define SCALAR (typeName 123)
|p4= copyArray: [[Boolean]] - (Optional, default [[false]]) [[true]] to copy the array and return it, [[false]] to modify the original array
#define ARRAY (typeName [])


</pre><small>''(Placeholder description extracted from the function header by [[BIS_fnc_exportFunctionsToWiki]])''</small> |DESCRIPTION=
|r1= [[Array]] - resulting modified array or a copy
____________________________________________________________________________________________


| <!-- [] call [[BIS_fnc_addToPairs]]; --> |SYNTAX=
|x1= <sqf>[[["apple",3],["pear",2]],"pear",10] call BIS_fnc_addToPairs; // Returns [["apple",3],["pear",12]]</sqf>


|p1= |PARAMETER1=
|x2= <sqf>[[["apple",3],["pear",2]],"apple",-2] call BIS_fnc_addToPairs; // Returns [["apple",1],["pear",2]]</sqf>


| |RETURNVALUE=
|x3= <sqf>[[["greetings","Hello!"],["rudewords",""]],"greetings","Hi!"] call BIS_fnc_addToPairs; // Returns [["greetings",["Hello!","Hi!"]],["rudewords",""]]</sqf>
____________________________________________________________________________________________
 
|x1= <code></code> |=
____________________________________________________________________________________________
 
| |SEEALSO=


|seealso= [[find]] [[findIf]] [[BIS_fnc_findInPairs]] [[BIS_fnc_getFromPairs]] [[BIS_fnc_removeFromPairs]] [[BIS_fnc_setToPairs]]
}}
}}
<h3 style="display:none">Notes</h3>
<dl class="command_description">
<!-- Note Section BEGIN -->
<!-- Note Section END -->
</dl>
<h3 style="display:none">Bottom Section</h3>
[[Category:Function Group: Arrays|{{uc:addToPairs}}]]
[[Category:Functions|{{uc:addToPairs}}]]
[[Category:{{Name|arma3}}: Functions|{{uc:addToPairs}}]]

Latest revision as of 01:24, 2 February 2024

Hover & click on the images for description

Description

Description:
Adds given value to pair array, stored under unique key.

If value is found:
a) both values are scalars: values are added and stored as a single scalar
b) one or both values are array: values are added and stored as a single array
c) anything else: an array is created and both values are stored there

Function by default modifies the input array. This can be overrriden by setting '_copyArray' param to true.
Execution:
call
Groups:
Arrays

Syntax

Syntax:
[array, key, value, copyArray] call BIS_fnc_addToPairs
Parameters:
array: Array - array to search through
key: String - key to search for
value: Number - (Optional, default nil) default return value if no match was found
copyArray: Boolean - (Optional, default false) true to copy the array and return it, false to modify the original array
Return Value:
Array - resulting modified array or a copy

Examples

Example 1:
[[["apple",3],["pear",2]],"pear",10] call BIS_fnc_addToPairs; // Returns [["apple",3],["pear",12]]
Example 2:
[[["apple",3],["pear",2]],"apple",-2] call BIS_fnc_addToPairs; // Returns [["apple",1],["pear",2]]
Example 3:
[[["greetings","Hello!"],["rudewords",""]],"greetings","Hi!"] call BIS_fnc_addToPairs; // Returns [["greetings",["Hello!","Hi!"]],["rudewords",""]]

Additional Information

See also:
find findIf BIS_fnc_findInPairs BIS_fnc_getFromPairs BIS_fnc_removeFromPairs BIS_fnc_setToPairs

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