array.ahk специальная презентация (v1)
Posted: 21 Feb 2024, 13:46
array.ahk
Преобразование методов массива JavaScript в AutoHotkey
В AutoHotkey отсутствуют встроенные вспомогательные методы итерации (начиная с версии 1.1.33), позволяющие выполнять многие из распространенных действий с массивами, встречающихся в других языках.
Портированные методы
Монтаж
Применение
array.<fn>([params*])
Сортировка
JavaScript не предоставляет параметры начала/конца или левого/правого значения, а также не осуществляет сортировку.
array.sort([params*])
Я подумал, что было бы забавно перевести страницу документации. В итоге работы оказалось гораздо больше, чем предполагалось изначально, но теперь она закончена!
Пожалуйста, делайте любые запросы на исправление в /docs/translations.csv, если вы заметили ошибку или область для улучшения
Преобразование методов массива JavaScript в AutoHotkey
В AutoHotkey отсутствуют встроенные вспомогательные методы итерации (начиная с версии 1.1.33), позволяющие выполнять многие из распространенных действий с массивами, встречающихся в других языках.
Портированные методы
- concat
- every
- fill
- filter
- find
- findIndex
- forEach
- includes
- indexOf
- join
- lastIndexOf
- map
- reduce
- reduceRight
- reverse
- shift
- slice
- some
- sort
- splice
- toString
- unshift
Монтаж
Code: Select all
#Include array.ahk\export.ahk
msgbox, % [1,2,3].join()
; => "1,2,3"
Применение
array.<fn>([params*])
Code: Select all
; Сопоставить удвоенное значение
arrayInt := [1, 5, 10]
arrayInt.map(func("fn_doubleInt"))
; => [2, 10, 20]
fn_doubleInt(int) {
return int * 2
}
; Сопоставить свойство объекта
arrayObj := [{"name": "bob", "age": 22}, {"name": "tom", "age": 51}]
arrayObj.map(func("fn_returnName"))
; => ["bob", "tom"]
fn_returnName(obj) {
return obj.name
}
; Цепочка методов
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]
}
Сортировка
JavaScript не предоставляет параметры начала/конца или левого/правого значения, а также не осуществляет сортировку.
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]
Я подумал, что было бы забавно перевести страницу документации. В итоге работы оказалось гораздо больше, чем предполагалось изначально, но теперь она закончена!
Пожалуйста, делайте любые запросы на исправление в /docs/translations.csv, если вы заметили ошибку или область для улучшения