---
title: roAssociativeArray
slug: develop/es/roassociativearray
docTags: 
createdAt: 2025-03-11T07:07:17.199Z
---

Este objeto le permite almacenar objetos en un arreglo asociativo (también conocido como mapa, diccionario o tabla hash), una estructura de datos que asocia objetos con claves de cadena. 

:::hint{type="info"}
El uso de bucles `PARA CADA` anidados para iterar sobre la misma instancia de *roAssociativeArray* puede provocar un comportamiento inesperado. Consulte la [Descripción de la instrucción FOR EACH](docId\:RNMgRNYsipoVMVrI2STTJ) para obtener más detalles.
:::

El objeto *roAssociativeArray* se crea sin parámetros: 

```text
CreateObject("roAssociativeArray")
```

Como alternativa, se puede crear un arreglo asociativo usando llaves:

```text
aa1 = {}
aa2 = {key1:"value", key2: 55, key3: 5+3 }
```

## ifEnum

### Reset() As Void

Restablece la posición al primer elemento de la enumeración.

### Next() As Dynamic

Devuelve un valor tipado en la posición actual e incrementa la posición.

### IsNext() As Boolean

Devuelve `verdadero` si hay un elemento siguiente.

### IsEmpty() As Boolean

Devuelve `verdadero` si el arreglo asociativo no contiene elementos.

## ifAssociativeArray

### AddReplace(key As String, value As Object) As Void

Agrega una nueva entrada al arreglo asociativo, asociando el objeto proporcionado con la cadena de clave proporcionada. Solo un objeto puede estar asociado con una clave, por lo que cualquier objeto existente vinculado a esa clave se descarta. Este método siempre distingue entre mayúsculas y minúsculas al crear claves, mientras que la sintaxis de literal de objeto (por ejemplo, `aa={bright:"Señal"}`) no distingue entre mayúsculas y minúsculas al crear claves, a menos que se llame a `SetModeCaseSensitive()`.

### Lookup(key As String) As Dynamic

Busca la clave especificada y devuelve el objeto asociado. Si no hay ningún objeto asociado con la cadena de clave, este método devolverá `Inválido`.

:::hint{type="success"}
En muchos casos, el [Operador de punto](docId\:x0lWrDdqBcT3aZtLEsB1_) se puede usar como abreviatura de los métodos `Lookup()` y `AddReplace()` al trabajar con arreglos asociativos.
:::

### DoesExist(key As String) As Boolean

Busca la clave especificada en el arreglo asociativo. Si la clave existe, se devuelve `verdadero`; de lo contrario, se devuelve `falso`.

### Delete(key As String) As Boolean

Busca un objeto en el arreglo asociativo vinculado a la clave especificada. Si existe dicho objeto, se elimina y se devuelve `verdadero`; de lo contrario, se devuelve `falso`.

### Clear() As Void

Elimina todos los objetos del arreglo asociativo.

### SetModeCaseSensitive() As Void

Hace que todas las acciones posteriores distingan entre mayúsculas y minúsculas. Todas las búsquedas y claves creadas (con la excepción del método `AddReplace()`) no distinguen entre mayúsculas y minúsculas de forma predeterminada.

### LookupCi(key As String) As Dynamic

Busca un objeto en el arreglo asociado con la clave especificada. Este método funciona de manera similar a `Lookup()`, con la excepción de que las comparaciones de claves nunca distinguen entre mayúsculas y minúsculas, independientemente del modo de mayúsculas y minúsculas.

### Append(aa As roAssociativeArray) As Void

Agrega un segundo arreglo asociativo al primero.

## Ejemplos

```text
aa = CreateObject("roAssociativeArray") 
aa.AddReplace("Bright", "Sign")
aa.AddReplace("TMOL", 42) 
print aa.Lookup("tmol")
print aa.Lookup("bright") 
```

El script anterior devuelve lo siguiente: 

```text
42
Sign
```

Como alternativa, puede usar el [Operador de Punto](docId\:x0lWrDdqBcT3aZtLEsB1_) en lugar de los métodos `AddReplace()` y `Lookup()`:

```text
aa = {}
aa.bright = "Sign"
aa.tmol = 42 
print aa.tmol
print aa.bright
```

También puede especificar una matriz asociativa como un literal de objeto multilínea:

```text
aa = {
bright : "Sign",
tmol : 42,
pie : 3.14
}

```

