Тема: AHK: array.base
Давненько нашел на просторах интернета, библиотеку, которая переносит JS функции в AHK. Там что-то подобное..
Array(prms*)
{
prms.base := _Array
return prms
}
class _Array
{
slice(start:=0, end:=0)
{
len := this.Length()
; START: Adjust 1 based index, check signage, set defaults
if (start > 0)
begin := start - 1 ; Include starting index going forward
else if (start < 0)
begin := len + start ; Count backwards from end
else
begin := start
; END: Check signage and set defaults
; MDN States: "to end (end not included)" so subtract one from end
if (end > 0)
last := end - 1
else if (end < 0)
last := len + end + 1 ; Count backwards from end
else
last := len
results := []
loop, % last - begin
results.push(this[begin + A_Index])
return results
}
}
Вроде все работает, если сделать допустим так:
arr := [1, 2, 3, 4, 5, 6]
newArr := arr.slice(3) // [3, 4, 5, 6]
Но это не работает вот так:
arr := StrSplit("1 2 3 4 5 6", " ")
newArr := arr.slice(3) // []
К тому же это все нельзя было применить к Object.