-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathHasVal.ahk
34 lines (25 loc) · 1.18 KB
/
HasVal.ahk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
; ===============================================================================================================================
; Checks if a value exists in an array (similar to HasKey)
; ===============================================================================================================================
; FoundPos := HasVal(Haystack, Needle)
HasVal(haystack, needle) {
for index, value in haystack
if (value = needle)
return index
if !(IsObject(haystack))
throw Exception("Bad haystack!", -1, haystack)
return 0
}
; ===============================================================================================================================
arr := ["a", "b", "", "d"]
MsgBox % HasVal(arr, "a") "`n" ; -> 1
. HasVal(arr, "c") "`n" ; -> 0
. HasVal(arr, "d") ; -> 4
arr := {keyA: "A", keyB: "B"}
MsgBox % HasVal(arr, "B") "`n" ; -> keyB
. HasVal(arr, "C") ; -> 0
arr := {keyA: "A", 1: 0, keyC: "C"}
MsgBox % HasVal(arr, 0) "`n" ; -> 1
. HasVal(arr, "C") "`n" ; -> keyC
str := "A"
MsgBox % HasVal(str, "A") ; -> fails -1