array.ahk Presentación Especial (v1)

Esta sección es para compartir scripts, librerías y herramientas.

Moderator: Flipeador

User avatar
Chunjee
Posts: 1422
Joined: 18 Apr 2014, 19:05
Contact:

array.ahk Presentación Especial (v1)

22 Feb 2024, 11:15

array.ahk
Image Image Image Image


Conversión de métodos Array de JavaScript a AutoHotkey
AutoHotkey carece de métodos auxiliares de iteración integrados (a partir de 1.1.33) para realizar muchos de los comportamientos de matrices comunes que se encuentran en otros lenguajes.


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

Instalación

Code: Select all

#Include array.ahk\export.ahk

msgbox, % [1,2,3].join()
; => "1,2,3"

Uso

array.<fn>([params*])

Code: Select all

; Mapa al valor duplicado
arrayInt := [1, 5, 10]
arrayInt.map(func("fn_doubleInt"))
; => [2, 10, 20]

fn_doubleInt(int) {
	return int * 2
}


; Asignar a propiedad de objeto
arrayObj := [{"name": "bob", "age": 22}, {"name": "tom", "age": 51}]
arrayObj.map(func("fn_returnName"))
; => ["bob", "tom"]

fn_returnName(obj) {
	return obj.name
}


; Encadenamiento 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]
}

Clasificación

JavaScript no expone los parámetros de inicio/fin o izquierda/derecha y tampoco este tipo.

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]


Pensé que sería divertido traducir la página de documentación. Terminó siendo mucho más trabajo de lo previsto, ¡pero ya está hecho!
Por favor, haz cualquier pull request a /docs/translations.csv si detectas algún error o área de mejora.

Return to “Scripts y Funciones”

Who is online

Users browsing this forum: No registered users and 50 guests