

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# ItemSelector (Map)
<a name="input-output-itemselector"></a>

**Administración del estado y transformación de los datos**  
Obtenga información sobre la [Transmisión de datos entre estados con variables](workflow-variables.md) y la [Transformación de datos con JSONata](transforming-data.md).

De forma predeterminada, la entrada efectiva para el estado `Map` es el conjunto de elementos de datos individuales presentes en la entrada de estado sin procesar. Con el campo `ItemSelector`, puede anular los valores de los elementos de datos antes de que se pasen al estado `Map`. 

Para anular los valores, especifique una entrada JSON válida que contenga un conjunto de pares clave-valor. Los pares pueden ser valores estáticos proporcionados en la definición de la máquina de estado, valores seleccionados de la entrada de estado mediante una [ruta](amazon-states-language-paths.md) o valores a los que se acceda desde el [objeto Context](input-output-contextobject.md). 

Si especifica pares clave-valor mediante una ruta o un objeto Context, el nombre de la clave debe terminar en `.$`.

**nota**  
El campo `ItemSelector` reemplaza al campo `Parameters` dentro del estado `Map`. Si utiliza el campo `Parameters` en las definiciones de estado `Map` para crear entradas personalizadas, le recomendamos que lo sustituya por `ItemSelector`.

Puede especificar el campo `ItemSelector` tanto en un *estado Map en línea* como en un *estado Map Distributed*.

Por ejemplo, considere la siguiente entrada JSON que contiene una matriz de tres elementos dentro del nodo `imageData`. Por cada *iteración del estado `Map`*, se pasa un elemento de matriz a la iteración como entrada.

```
[
  {
    "resize": "true",
    "format": "jpg"
  },
  {
    "resize": "false",
    "format": "png"
  },
  {
    "resize": "true",
    "format": "jpg"
  }
]
```

Con el campo `ItemSelector`, puede definir una entrada JSON personalizada para anular la entrada original, como se muestra en el siguiente ejemplo. Luego, Step Functions pasa esta entrada personalizada a cada *iteración del estado `Map`*. La entrada personalizada contiene un valor estático para `size` y el valor de los datos de un objeto Context para el estado `Map`. El objeto Context `$$.Map.Item.Value` contiene el valor de cada elemento de datos individual.

```
{
  "ItemSelector": {
    "size": 10,
    "value.$": "$$.Map.Item.Value"
  }
}
```

El siguiente ejemplo muestra la entrada recibida por una iteración del *estado Map en línea*:

```
{
  "size": 10,
  "value": {
    "resize": "true",
    "format": "jpg"
  }
}
```

**sugerencia**  
Para ver un ejemplo completo de un *estado Map Distributed* que usa el campo `ItemSelector`, consulte [Copiar datos CSV a gran escala mediante Distributed Map](tutorial-map-distributed.md).