Page 1 of 1

array.ahk специальная презентация (v1)

Posted: 21 Feb 2024, 13:46
by Chunjee
array.ahk
Image Image Image Image

Преобразование методов массива 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, если вы заметили ошибку или область для улучшения

Re: array.ahk специальная презентация (v1)

Posted: 22 Feb 2024, 19:46
by mcl
@Chunjee, hello and thank you for your effort!
My suggestions for russian translation (not much tho') are attached to this message (me can't github).
Main suggestion is, since most of these methods are similar to those in JavaScript, you may consider looking at MDN reference community translations.

Re: array.ahk специальная презентация (v1)

Posted: 23 Feb 2024, 16:03
by Chunjee
Спасибо большое! Я пошел и применил ваш вклад

:thumbup: