Ar HasKey

< [[::Category:Functions|Category:Functions]]

A function added by the New Vegas Script Extender.

Description

Added by NVSE V4. Returns True (1) if the specified array contains the specified key, or otherwise False (0).

Syntax

(bool) Ar_HasKey ToCheck:array Key:arraykey

Example

if eval Ar_HasKey SomeArray, SomeKey
   ; SomeArray has SomeKey
endif

Examples With Extraneous Context

array_var aMagicNumberToString
string_var slot

let aMagicNumberToString := Ar_Map 2::"Upper Body", 5::"Weapon"

if eval Ar_HasKey aMagicNumberToString, 2
    ; True, the array has the key: 2
    let slot := aMagicNumberToString[2] ; I know this is safe
endif

if eval Ar_HasKey aMagicNumberToString, 5
    ; True, the array has the key: 5
endif

if eval Ar_HasKey aMagicNumberToString, 13
    ; False, the array has no key: 13 (or any except 2 and 5 in this case)
endif

Exactly the same with a "stringmap"

array_var aStringToMagicNumber
int iMN

let aStringToMagicNumber := Ar_Map "Upper Body"::2, "Weapon"::5

if eval Ar_HasKey aStringToMagicNumber, "Upper Body"
    ; True, the array has the key: "Upper Body"
    let iMN := aStringToMagicNumber["Upper Body"] ; I know this is safe
endif

if eval Ar_HasKey aStringToMagicNumber, "Weapon"
    ; True, the array has the key: "Weapon"
endif

if eval Ar_HasKey aStringToMagicNumber, "Another"
    ; False, the array has no key: "Another" (or any except previous two)
endif

Notes

  • It will work with any type of array, although it is most appropriate for "map" and "stringmap" types, since with the regular "array" type (Ar_List) the keys are always consecutive from 0, so you could simply use Ar_Size instead.

See Also