Post by Chunjee » 22 Feb 2024, 11:22
array.ahk
Conversion des méthodes Array de JavaScript en AutoHotkey
AutoHotkey ne dispose pas de méthodes d'aide à l'itération intégrées (à partir de la version 1.1.33) pour exécuter de nombreux comportements de tableau courants trouvés dans d'autres langages.
Méthodes portées - concat
- every
- fill
- filter
- find
- findIndex
- forEach
- includes
- indexOf
- join
- lastIndexOf
- map
- reduce
- reduceRight
- reverse
- shift
- slice
- some
- sort
- splice
- toString
- unshift
Installation
Code: Select all
#Include array.ahk\export.ahk
msgbox, % [1,2,3].join()
; => "1,2,3"
Usage
array.<fn>([params*]) Code: Select all
; Mapper à la valeur doublée
arrayInt := [1, 5, 10]
arrayInt.map(func("fn_doubleInt"))
; => [2, 10, 20]
fn_doubleInt(int) {
return int * 2
}
; Mapper à la propriété de l'objet
arrayObj := [{"name": "bob", "age": 22}, {"name": "tom", "age": 51}]
arrayObj.map(func("fn_returnName"))
; => ["bob", "tom"]
fn_returnName(obj) {
return obj.name
}
; Chaînage de méthodes
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]
}
Tri
JavaScript n'expose pas les paramètres début/fin ou gauche/droite et ce tri non plus.
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]
J'ai pensé qu'il serait amusant de traduire la page de documentation. Cela a fini par représenter beaucoup plus de travail que prévu, mais c'est maintenant fait !
N'hésitez pas à faire des pull requests à
/docs/translations.csv si vous repérez une erreur ou un point à améliorer.
[size=200]array.ahk[/size]
[url=https://www.npmjs.com/package/array.ahk][img]https://img.shields.io/npm/dm/array.ahk?style=for-the-badge&logo=npm[/img][/url] [url=https://github.com/chunjee/array.ahk][img]https://img.shields.io/badge/source-code-red?style=for-the-badge&logo=github[/img][/url] [url=https://chunjee.github.io/array.ahk/#/fr/docs][img]https://img.shields.io/badge/complète-Documentation-blue?style=for-the-badge[/img][/url] [img]https://img.shields.io/npm/l/array.ahk?color=tan&style=for-the-badge[/img]
[size=125]Conversion des méthodes Array de JavaScript en AutoHotkey[/size]
AutoHotkey ne dispose pas de méthodes d'aide à l'itération intégrées (à partir de la version 1.1.33) pour exécuter de nombreux comportements de tableau courants trouvés dans d'autres langages.
[size=125]Méthodes portées[/size] [list][*]concat [*]every [*]fill [*]filter [*]find [*]findIndex [*]forEach [*]includes [*]indexOf [*]join [*]lastIndexOf [*]map [*]reduce [*]reduceRight [*]reverse [*]shift [*]slice [*]some [*]sort [*]splice [*]toString [*]unshift [/list]
[size=125][url=https://chunjee.github.io/array.ahk/fr/readme]Installation[/url][/size]
[code]
#Include array.ahk\export.ahk
msgbox, % [1,2,3].join()
; => "1,2,3"[/code]
[size=125]Usage[/size]
[c]array.<fn>([params*])[/c] [code]; Mapper à la valeur doublée
arrayInt := [1, 5, 10]
arrayInt.map(func("fn_doubleInt"))
; => [2, 10, 20]
fn_doubleInt(int) {
return int * 2
}
; Mapper à la propriété de l'objet
arrayObj := [{"name": "bob", "age": 22}, {"name": "tom", "age": 51}]
arrayObj.map(func("fn_returnName"))
; => ["bob", "tom"]
fn_returnName(obj) {
return obj.name
}
; Chaînage de méthodes
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]
}[/code]
[size=125]Tri[/size]
JavaScript n'expose pas les paramètres début/fin ou gauche/droite et ce tri non plus.
[c]array.sort([params*])[/c] [code]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][/code]
[hr]
J'ai pensé qu'il serait amusant de traduire la page de documentation. Cela a fini par représenter beaucoup plus de travail que prévu, mais c'est maintenant fait !
N'hésitez pas à faire des pull requests à [url=https://github.com/Chunjee/array.ahk/blob/master/docs/translations.csv]/docs/translations.csv[/url] si vous repérez une erreur ou un point à améliorer.