Difference between revisions of "in"

From Bohemia Interactive Community
Jump to navigation Jump to search
(see also)
m (Text replacement - "[[{{arma3}}]]" to "{{arma3}}")
 
(57 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{Command|= Comments
+
{{RV|type=command
____________________________________________________________________________________________
 
  
| ofp |= Game name
+
|game1= ofp
 +
|version1= 1.00
  
|1.00|= Game version
+
|game2= ofpe
____________________________________________________________________________________________
+
|version2= 1.00
  
| 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
+
|game3= arma1
____________________________________________________________________________________________
+
|version3= 1.00
  
| value '''in''' array |= Syntax
+
|game4= arma2
|p1 = value: [[Anything]] - any value (Arma 2 cannot  match [[Array]])
+
|version4= 1.00
|p2 = array: [[Array]] - array of values
 
| [[Boolean]] |= Return value
 
  
| s2= unit '''in''' vehicle |= Syntax
+
|game5= arma2oa
|p21 = unit: [[Object]] - person
+
|version5= 1.50
|p22 = vehicle: [[Object]] - transport
 
  
|r2= [[Boolean]] |= Return value
+
|game6= tkoh
 +
|version6= 1.00
  
| s3=position '''in''' location |= Syntax       (''available since Arma 3'')
+
|game7= arma3
 +
|version7= 0.50
  
|p41= position: [[Array]] - format [[Position2D]] or [[Position3D]] |= Parameter 1
+
|gr1= Strings
|p42= location: [[Location]] |= Parameter 2
 
  
| r3=[[Boolean]] |= Return value
+
|gr2= Arrays
____________________________________________________________________________________________
 
|x1 = <code>1 [[in]] [0,1,2]; //true</code>|=
 
  
|x2 = <code>"lol" [[in]] ["Lol", "LOL", "loL"]; //false
+
|gr3= Locations
"loL" [[in]] ["Lol", "LOL", "loL"]; //true</code>|=
 
  
|x3= Arma 3:<code>[1,2,3] [[in]] <nowiki>[</nowiki>[1,2,3],[4,5,6]]; //true</code>|=
+
|gr4= HashMap
  
|x4 = <code>_isInCar = [[player]] '''in''' car;</code>|=
+
|gr5= Unit Control
  
|x5= Arma 3:<code>_isInside = [1000,2000,0] [[in]] myLocation;</code>|=
+
|descr= Checks whether value is in array, unit is in vehicle, position is inside location or ANSI string is part of other ANSI string. If Unicode support is desired, see [[forceUnicode]].
|[[set]], [[resize]], [[reverse]], [[pushBack]], [[pushBackUnique]], [[apply]], [[select]], [[find]], [[toArray]], [[toString]], [[forEach]], [[count]], [[deleteAt]], [[deleteRange]], [[append]], [[sort]], [[param]], [[params]], [[arrayIntersect]], [[splitString]], [[joinString]], [[inPolygon]] |= See also
+
{{Feature | Informative | [[String]] comparison is case-sensitive (see Examples '''2''' and '''6''').}}
  
}}
+
|s1= value [[in]] array
 +
 
 +
|p1= value: [[Anything]] - Any value (cannot  match [[Array]] before {{arma3}})
 +
 
 +
|p2= array: [[Array]] - Array of values
 +
 
 +
|r1= [[Boolean]]
 +
 
 +
|s2= unit [[in]] vehicle
 +
 
 +
|p21= unit: [[Object]] - Entity person
 +
 
 +
|p22= vehicle: [[Object]] - Entity vehicle
 +
 
 +
|r2= [[Boolean]]
 +
 
 +
|s3= position [[in]] location {{Since|arma3||y}}
 +
 
 +
|p41= position: [[Array]] - Format [[Position2D]] or [[Position3D]]
 +
 
 +
|p42= location: [[Location]]
 +
 
 +
|r3= [[Boolean]]
 +
 
 +
|s4= needle [[in]] haystack {{Since|arma3|1.96|y}}
 +
 
 +
|p61= needle: [[String]] - String to search '''for'''
 +
 
 +
|p62= haystack: [[String]] - String to search '''in'''
 +
 
 +
|r4= [[Boolean]]
 +
 
 +
|s5= key [[in]] hashMap
 +
 
 +
|p81= key: [[HashMapKey]]
 +
 
 +
|p82= hashMap : [[HashMap]]
 +
 
 +
|r5= [[Boolean]]
 +
 
 +
|x1= <code>1 [[in]] [0, 1, 2]; {{cc|true}}</code>
 +
 
 +
|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]] ([[Magic Variables#x|_x]] == "aaa") [[exitWith]] { [[Magic Variables#forEachIndex|_forEachIndex]] };
 +
-1
 +
} [[forEach]] _myArray) != -1; {{cc|true, less performant but valid before [[findIf]]}}
 +
 
 +
{ [[if]] ([[Magic Variables#x|_x]] == "aaa") [[exitWith]] {1} } [[count]] _myArray > 0; {{cc|true}}
 +
 
 +
{ [[Magic Variables#x|_x]] == "aaa"; } [[count]] _myArray > 0; {{cc|true, worst performance}}
 +
{{cc|only option available in OFP}}</code>
 +
 
 +
|x3= <code>[1,2,3] [[in]] [<nowiki/>[1,2,3], [4,5,6]]; {{cc|true - [[:Category:Arma 3|{{arma3}}]] only}}</code>
 +
 
 +
|x4= <code>_isInCar = [[player]] [[in]] car;</code>
 +
 
 +
|x5= <code>_isInside = [1000,2000,0] [[in]] myLocation;</code>
  
<h3 style="display:none">Notes</h3>
+
|x6= <code>_isInString = "foo" [[in]] "foobar"; {{cc|true}}
<dl class="command_description">
+
_isInString = "Foo" [[in]] "foobar"; {{cc|false}}</code>
<!-- 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">
 
For a case-''insensitive'' test use [[count]]:
 
<code>{_x == "lol"} [[count]] ["Lol", "LOL", "loL"]; //returns 3.</code>
 
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.
 
<code>[0,0,0] '''in''' [[0,0,0],[1,4,3],[5,3,1]]; //returns: false.</code>
 
<!-- Note Section END -->
 
</dl>
 
  
<h3 style="display:none">Bottom Section</h3>
+
|x7= <code>[[private]] _onFoot = _unit [[in]] _unit;
[[Category:Scripting Commands|INARRAY]]
+
{{cc|[[vehicle]] _unit {{=}}{{=}} _unit works}}
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
+
{{cc|[[isNull]] [[objectParent]] _unit is even faster}}</code>
[[Category:Scripting Commands OFP 1.96|INARRAY]]
 
[[Category:Scripting Commands OFP 1.46|INARRAY]]
 
[[Category:Scripting Commands ArmA|INARRAY]]
 
[[Category:Command_Group:_Variables|{{uc:{{PAGENAME}}}}]]
 
  
 +
|seealso= [[inPolygon]], [[inArea]], [[find]], [[findIf]], [[toArray]], [[forceUnicode]]
 +
}}
  
<!-- CONTINUE Notes -->
 
 
<dl class="command_description">
 
<dl class="command_description">
<dd class="notedate">Posted on August 23, 2014 - 10:10 (UTC)</dd>
+
 
<dt class="note">[[User:PabstMirror|PabstMirror]]</dt>
+
<dt></dt>
<dd class="note">
+
<dd class="notedate">Posted on October 8, 2019 - 21:08 (UTC)</dd>
As of Arma 3 1.26:
+
<dt class="note">[[User:Lou Montana|Lou Montana]]</dt>
<code>[0,0,0] in [[0,0,0],[1,4,3],[5,3,1]]; //returns '''true'''
+
<dd class="note">''From a description note:''<br>
[1,2,3] in [[1,2,3],[4,5,6]]; //returns '''true'''
+
''<unit>'' [[in]] ''<vehicle>'' literally does this: <tt>[[vehicle]] <unit> {{=}}{{=}} <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>
 
Assuming it is now using comparison as found in [[isEqualTo]]
 
 
</dd>
 
</dd>
 +
 
</dl>
 
</dl>
<!-- DISCONTINUE Notes -->
 

Latest revision as of 03:11, 20 July 2021

Hover & click on the images for description

Description

Description:
Checks whether value is in array, unit is in vehicle, position is inside location or ANSI string is part of other ANSI string. If Unicode support is desired, see forceUnicode.
String comparison is case-sensitive (see Examples 2 and 6).
Groups:
StringsArraysLocationsHashMapUnit Control

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.96
Parameters:
needle: String - String to search for
haystack: String - String to search in
Return Value:
Boolean

Alternative Syntax 4

Syntax:
key in hashMap
Parameters:
key: HashMapKey
hashMap : HashMap
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:
[1,2,3] in [[1,2,3], [4,5,6]]; // true - Arma 3 only
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 _onFoot = _unit in _unit; // vehicle _unit == _unit works // isNull objectParent _unit is even faster

Additional Information

See also:
inPolygoninAreafindfindIftoArrayforceUnicode

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 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).