

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# ItemSelector （地圖）
<a name="input-output-itemselector"></a>

**管理狀態和轉換資料**  
了解如何[使用變數在狀態與使用 JSONata 轉換資料之間傳遞資料](workflow-variables.md)。 [ JSONata](transforming-data.md)

根據預設，`Map`狀態的有效輸入是原始狀態輸入中存在的一組個別資料項目。使用 `ItemSelector` 欄位，您可以在資料項目傳遞至 `Map` 狀態之前覆寫資料項目的值。

若要覆寫值，請指定包含鍵值對集合的有效 JSON 輸入。這些對可以是狀態機器定義中提供的靜態值、使用[路徑](amazon-states-language-paths.md)從狀態輸入中選取的值，或從[內容物件](input-output-contextobject.md)存取的值。

如果您使用路徑或內容物件指定鍵值對，則鍵名稱必須以 結尾`.$`。

**注意**  
`ItemSelector` 欄位會取代 `Map` 狀態內的 `Parameters` 欄位。如果您使用`Map`狀態定義中的 `Parameters` 欄位來建立自訂輸入，建議您將其取代為 `ItemSelector`。

您可以同時指定*內嵌映射狀態*和*分散式映射狀態*`ItemSelector`的欄位。

例如，請考慮下列 JSON 輸入，其中包含`imageData`節點內三個項目的陣列。對於每個*`Map`狀態反覆運算*，陣列項目會做為輸入傳遞至反覆運算。

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

使用 `ItemSelector` 欄位，您可以定義自訂 JSON 輸入來覆寫原始輸入，如下列範例所示。步驟函數接著會將此自訂輸入傳遞給每個*`Map`狀態反覆運算*。自訂輸入包含 的靜態值，`size`以及 `Map` 狀態的內容物件資料值。`$$.Map.Item.Value` 內容物件包含每個個別資料項目的值。

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

下列範例顯示內嵌*映射狀態*反覆運算收到的輸入：

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

**提示**  
如需使用 `ItemSelector` 欄位之*分散式映射狀態*的完整範例，請參閱 [使用分散式地圖複製大規模 CSV](tutorial-map-distributed.md)。