Difference between revisions of "in"

From Bohemia Interactive Community
Jump to navigation Jump to search
(see also)
m (Use since template)
 
(24 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Command|= Comments
+
{{Command|Comments=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| ofp |= Game name
+
| ofp |Game name=
  
|1.00|= Game version
+
|1.00|Game version=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| Checks whether value is in array, unit in vehicle or position inside location. In case of value in array check, [[String]] values will be compared on CaSEseNsiTIve basis (see Example 2). Note: In Arma 2 you can not test for arrays within arrays using this command. |= Description
+
| Checks whether value is in array, unit is in vehicle, position is inside location or string is part of other string.
 +
{{Informative | [[String]] comparison is case-sensitive (see Examples '''2''' and '''6''').}}
 +
{{Feature arma3 | Since {{arma3}} you can test for arrays within arrays.}} |DESCRIPTION=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| value '''in''' array |= Syntax
+
| value [[in]] array |SYNTAX=
|p1 = value: [[Anything]] - any value (Arma 2 cannot  match [[Array]])
 
|p2 = array: [[Array]] - array of values
 
| [[Boolean]] |= Return value
 
  
| s2= unit '''in''' vehicle |= Syntax
+
|p1= value: [[Anything]] - any value (cannot  match [[Array]] before {{arma3}}) |PARAM1=
|p21 = unit: [[Object]] - person
 
|p22 = vehicle: [[Object]] - transport
 
  
|r2= [[Boolean]] |= Return value
+
|p2= array: [[Array]] - array of values |PARAM2=
  
| s3=position '''in''' location |= Syntax       (''available since Arma 3'')
+
| [[Boolean]] |RETURNVALUE=
 +
____________________________________________________________________________________________
 +
 
 +
|s2= unit [[in]] vehicle |SYNTAX2=
 +
 
 +
|p21 = unit: [[Object]] - entity person |PARAM21=
 +
 
 +
|p22 = vehicle: [[Object]] - entity vehicle |PARAM22=
 +
 
 +
|r2= [[Boolean]] |RETURNVALUE2=
 +
____________________________________________________________________________________________
 +
 
 +
|s3= position [[in]] location {{since|arma3||y}} |SYNTAX3=
  
|p41= position: [[Array]] - format [[Position2D]] or [[Position3D]] |= Parameter 1
+
|p41= position: [[Array]] - format [[Position2D]] or [[Position3D]]|PARAM41=
|p42= location: [[Location]] |= Parameter 2
 
  
| r3=[[Boolean]] |= Return value
+
|p42= location: [[Location]] |PARAM42=
 +
 
 +
|r3= [[Boolean]] |RETURNVALUE3=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
|x1 = <code>1 [[in]] [0,1,2]; //true</code>|=
 
  
|x2 = <code>"lol" [[in]] ["Lol", "LOL", "loL"]; //false
+
|s4= needle [[in]] haystack {{since|arma3|1.95.146032|y}} |SYNTAX4=
"loL" [[in]] ["Lol", "LOL", "loL"]; //true</code>|=
+
 
 +
|p61= needle: [[String]] - string to search for |PARAM61=
 +
 
 +
|p62= haystack: [[String]] - string to search in |PARAM62=
 +
 
 +
|r4= [[Boolean]] |RETURNVALUE4=
 +
____________________________________________________________________________________________
 +
 
 +
|x1= <code>1 [[in]] [0, 1, 2]; {{cc|true}}</code> |Example 1=
 +
 
 +
|x2= <code>[[private]] _myArray = ["Aaa", "AAa", "AAA"];
 +
 
 +
"aaa" [[in]] _myArray; {{cc|false}}
 +
"AAa" [[in]] _myArray; {{cc|true}}
 +
 
 +
{{cc|case-insensitive alternatives}}
 +
_myArray [[findIf]] { _x == "aaa"; } != -1; {{cc|true}}
 +
 
 +
({
 +
[[if]] ([[_x]] == "aaa") [[exitWith]] { [[_forEachIndex]] };
 +
-1
 +
} [[forEach]] _myArray) != -1; {{cc|true, less performant but valid before [[findIf]]}}
 +
 
 +
{ [[if]] ([[_x]] == "aaa") [[exitWith]] {1} } [[count]] _myArray > 0; {{cc|true}}
 +
 
 +
{ [[_x]] == "aaa"; } [[count]] _myArray > 0; {{cc|true, worst performance}}
 +
{{cc|only option available in OFP}}</code> |Example2=
 +
 
 +
|x3= Arma 3:<code>[1,2,3] [[in]] <nowiki>[</nowiki>[1,2,3], [4,5,6]]; {{cc|true}}</code> |Example3=
 +
 
 +
|x4= <code>_isInCar = [[player]] [[in]] car;</code> |Example4=
 +
 
 +
|x5= <code>_isInside = [1000,2000,0] [[in]] myLocation;</code>|Example5=
  
|x3= Arma 3:<code>[1,2,3] [[in]] <nowiki>[</nowiki>[1,2,3],[4,5,6]]; //true</code>|=
+
|x6= <code>_isInString = "foo" [[in]] "foobar"; {{cc|true}}
 +
_isInString = "Foo" [[in]] "foobar"; {{cc|false}}</code>|Example6=
  
|x4 = <code>_isInCar = [[player]] '''in''' car;</code>|=
+
|x7= <code>[[private]] _boarded = [[player]] [[in]] _groupVehicle;</code> |Example7=
  
|x5= Arma 3:<code>_isInside = [1000,2000,0] [[in]] myLocation;</code>|=
+
|x8= <code>[[private]] _onFoot = _unit [[in]] _unit;
|[[set]], [[resize]], [[reverse]], [[pushBack]], [[pushBackUnique]], [[apply]], [[select]], [[find]], [[toArray]], [[toString]], [[forEach]], [[count]], [[deleteAt]], [[deleteRange]], [[append]], [[sort]], [[param]], [[params]], [[arrayIntersect]], [[splitString]], [[joinString]], [[inPolygon]] |= See also
+
{{cc|[[vehicle]] _unit {{=}}{{=}} _unit works}}
 +
{{cc|[[isNull]] [[objectParent]] _unit is even faster}}</code> |Example8=
  
 +
|[[inPolygon]], [[inArea]], [[set]], [[resize]], [[reverse]], [[pushBack]], [[pushBackUnique]], [[apply]], [[select]], [[find]], [[toArray]], [[toString]], [[forEach]], [[count]], [[deleteAt]], [[deleteRange]], [[append]], [[sort]], [[param]], [[params]], [[arrayIntersect]], [[splitString]], [[joinString]]|SEEALSO=
 
}}
 
}}
  
Line 45: Line 89:
 
<dl class="command_description">
 
<dl class="command_description">
 
<!-- Note Section BEGIN -->
 
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on 15:58, 18 January 2007 (CET)
+
 
<dt class="note">'''[[User:T_D|T_D]]'''<dd class="note">
+
<dd class="notedate">Posted on October 8, 2019 - 21:08 (UTC)</dd>
For a case-''insensitive'' test use [[count]]:
+
<dt class="note">[[User:Lou Montana|Lou Montana]]</dt>
<code>{_x == "lol"} [[count]] ["Lol", "LOL", "loL"]; //returns 3.</code>
+
<dd class="note">''From a description note:''<br>
Checking if an array (for example a position) is in another array doesn't produce an error, but it will always return false. e.g.
+
''<unit>'' [[in]] ''<vehicle>'' literally does this: <tt>[[vehicle]] <unit> <nowiki>==</nowiki> <vehicle></tt>. If ''<vehicle>'' is the same as ''<unit>'' the expression will return [[true]] for when the ''<unit>'' is on foot and [[false]] for when ''<unit>'' is in vehicle (see example '''7''' &amp; '''8''').
<code>[0,0,0] '''in''' [[0,0,0],[1,4,3],[5,3,1]]; //returns: false.</code>
+
</dd>
 +
 
 
<!-- Note Section END -->
 
<!-- Note Section END -->
 
</dl>
 
</dl>
  
 
<h3 style="display:none">Bottom Section</h3>
 
<h3 style="display:none">Bottom Section</h3>
[[Category:Scripting Commands|INARRAY]]
+
[[Category:Scripting Commands OFP 1.46|{{uc:{{PAGENAME}}}}]]
 +
[[Category:Scripting Commands OFP 1.96|{{uc:{{PAGENAME}}}}]]
 
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
 
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.96|INARRAY]]
+
[[Category:Scripting Commands ArmA|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands OFP 1.46|INARRAY]]
+
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA|INARRAY]]
+
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Command_Group:_Variables|{{uc:{{PAGENAME}}}}]]
+
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
 
+
[[Category:Command_Group:_Locations]]
 
 
<!-- CONTINUE Notes -->
 
<dl class="command_description">
 
<dd class="notedate">Posted on August 23, 2014 - 10:10 (UTC)</dd>
 
<dt class="note">[[User:PabstMirror|PabstMirror]]</dt>
 
<dd class="note">
 
As of Arma 3 1.26:
 
<code>[0,0,0] in [[0,0,0],[1,4,3],[5,3,1]]; //returns '''true'''
 
[1,2,3] in [[1,2,3],[4,5,6]]; //returns '''true'''
 
</code>
 
Assuming it is now using comparison as found in [[isEqualTo]]
 
</dd>
 
</dl>
 
<!-- DISCONTINUE Notes -->
 

Latest revision as of 22:34, 1 November 2019

Introduced with Operation Flashpoint version 1.00
  

Click on the images for descriptions

Introduced in

Game:
Operation Flashpoint
Version:
1.00

Description

Description:
Checks whether value is in array, unit is in vehicle, position is inside location or string is part of other string.
String comparison is case-sensitive (see Examples 2 and 6).
Arma 3 logo black.png
Since Arma 3 you can test for arrays within arrays.

Syntax

Syntax:
value in array
Parameters:
value: Anything - any value (cannot match Array before Arma 3)
array: Array - array of values
Return Value:
Boolean

Alternative Syntax

Syntax:
unit in vehicle
Parameters:
unit: Object - entity person
vehicle: Object - entity vehicle
Return Value:
Boolean

Alternative Syntax 2

Syntax:
position in location Since Arma 3
Parameters:
position: Array - format Position2D or Position3D
location: Location
Return Value:
Boolean

Alternative Syntax 3

Syntax:
needle in haystack Since Arma 3 v1.95.146032
Parameters:
needle: String - string to search for
haystack: String - string to search in
Return Value:
Boolean

Examples

Example 1:
1 in [0, 1, 2]; // true
Example 2:
private _myArray = ["Aaa", "AAa", "AAA"]; "aaa" in _myArray; // false "AAa" in _myArray; // true // case-insensitive alternatives _myArray findIf { _x == "aaa"; } != -1; // true ({ if (_x == "aaa") exitWith { _forEachIndex }; -1 } forEach _myArray) != -1; // true, less performant but valid before findIf { if (_x == "aaa") exitWith {1} } count _myArray > 0; // true { _x == "aaa"; } count _myArray > 0; // true, worst performance // only option available in OFP
Example 3:
Arma 3:[1,2,3] in [[1,2,3], [4,5,6]]; // true
Example 4:
_isInCar = player in car;
Example 5:
_isInside = [1000,2000,0] in myLocation;
Example 6:
_isInString = "foo" in "foobar"; // true _isInString = "Foo" in "foobar"; // false
Example 7:
private _boarded = player in _groupVehicle;
Example 8:
private _onFoot = _unit in _unit; // vehicle _unit == _unit works // isNull objectParent _unit is even faster

Additional Information

Multiplayer:
-
See also:
inPolygoninAreasetresizereversepushBackpushBackUniqueapplyselectfindtoArraytoStringforEachcountdeleteAtdeleteRangeappendsortparamparamsarrayIntersectsplitStringjoinString

Notes

Only post proven facts here. Report bugs on the feedback tracker. Use the talk page or the forums for discussions.
Add New Note | How To

Notes

Posted on October 8, 2019 - 21:08 (UTC)
Lou Montana
From a description note:
<unit> in <vehicle> literally does this: vehicle <unit> == <vehicle>. If <vehicle> is the same as <unit> the expression will return true for when the <unit> is on foot and false for when <unit> is in vehicle (see example 7 & 8).

Bottom Section