Conversão de métodos Array de JavaScript para AutoHotkey
AutoHotkey não possui métodos auxiliares de iteração integrados (a partir de 1.1.33) para executar muitos dos comportamentos comuns de array encontrados em outras linguagens.
Métodos portados
- concat
- every
- fill
- filter
- find
- findIndex
- forEach
- includes
- indexOf
- join
- lastIndexOf
- map
- reduce
- reduceRight
- reverse
- shift
- slice
- some
- sort
- splice
- toString
- unshift
Instalação
Code: Select all
#Include array.ahk\export.ahk
msgbox, % [1,2,3].join()
; => "1,2,3"
Uso
array.<fn>([params*])
Code: Select all
; Mapear para valor duplicado
arrayInt := [1, 5, 10]
arrayInt.map(func("fn_doubleInt"))
; => [2, 10, 20]
fn_doubleInt(int) {
return int * 2
}
; Mapear para propriedade do objeto
arrayObj := [{"name": "bob", "age": 22}, {"name": "tom", "age": 51}]
arrayObj.map(func("fn_returnName"))
; => ["bob", "tom"]
fn_returnName(obj) {
return obj.name
}
; Encadeamento de métodos
arrayObj := [{"name": "bob", "age": 22}, {"name": "tom", "age": 51}]
msgbox, % arrayObj.map(func("fn_returnProp").bind("age"))
.map(func("fn_doubleInt"))
.join(",")
; => "44,102"
fn_returnProp(prop, obj) {
return obj[prop]
}
Ordenação
JavaScript não expõe parâmetros de início/fim ou esquerda/direita e nem essa classificação.
array.sort([params*])
Code: Select all
arrayInt := [11,9,5,10,1,6,3,4,7,8,2]
arrayInt.sort()
; => [1,2,3,4,5,6,7,8,9,10,11]
Achei que seria divertido traduzir a página de documentação. Acabou sendo muito mais trabalhoso do que o previsto originalmente; mas agora está pronto!
Por favor, faça qualquer pull request para /docs/translations.csv se você encontrar um erro ou área para melhoria