> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 配列フォーマッタ

> ArcScript の配列属性に対して動作し、複数の配列要素にわたって集計または検索した値を返すフォーマッタ。

export const siteNameShort = "Arc";

以下のフォーマッタは、配列属性をインプットとして受け取ります。配列属性とは、複数の値が割り当てられたアイテム上の単一の属性です。{siteNameShort}Script の配列属性は、属性の末尾のシャープ記号（`#`）で示されます（例えば`tmp.myarrayitem#`）。詳しくは、[属性値の選択](../operations/operations)を参照してください。

<Note>
  * これらのフォーマッタのいずれかに配列属性を渡す場合、`#` 記号は必要ありません。
  * 一部のフォーマッタのオプションパラメータを囲う角括弧は、必須ではありません。これらは、パラメータがオプションであることを示すためにあります。
</Note>

## arrayaverage(\[integer\_rounding\_mode]\[decimal\_places])

属性配列要素の平均を返します。

* **rounding\_mode**：精度を破棄できる数値演算の丸め処理の動作を指定します。許容される値は`ToEven`、`AwayFromZero`、`ToZero`、`ToNegativeInfinity`、`ToPositiveInfinity` です。デフォルトで使用される丸め戦略は、オペレーティングシステムによって異なります。.NET では<a href="https://learn.microsoft.com/ja-jp/dotnet/api/system.midpointrounding?view=net-6.0" target="_blank">ToEven</a> を使用し、Java では<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/RoundingMode.html#HALF_EVEN" target="_blank">Half Even</a> を使用します。

また、`RoundingMode` グローバル環境変数を指定し、その値として`rounding_mode` の値のいずれかを指定することもできます。これを行うと、フォーマッタで`rounding_mode` が明示的に指定されていない場合、{siteNameShort} は常にその丸めモードを使用します。具体的には、{siteNameShort} は以下の順序で値をチェックします：

1. `rounding_mode` 入力
2. `RoundingMode` 環境変数
3. 前述したとおりのオペレーティングシステムによって決定されるデフォルト

## arrayfind(substring)

属性配列内で文字列が見つかったインデックスを返します。インデックスは1始まりです。

* **searchstring**：元の値から検索する文字列。

## count(substring)

最初のパラメータで指定された部分文字列が、属性値内に出現する回数を返します。

* **substring**：属性値内で検索する部分文字列。

## endswith(substring\[, iftrue]\[, iffalse])

属性値が指定されたパラメータで終わるかどうかを判別します。属性が値で終わる場合は *true* （または *iftrue* ）を返し、終わらない場合は *false* （または *iffalse* ）を返します。

* **substring**：末尾に想定される文字列。
* **iftrue**：属性値がパラメータ値で終わる場合に返される値（オプション）。
* **iffalse**：属性値がパラメータ値で終わらない場合に返される値（オプション）。

## implode(\[separator])

複数の値を、セパレータで区切られた文字列に結合（implode）します。

* **separator**：セパレータ（オプション）。

## join(\[separator])

複数の値を、セパレータで区切られた文字列に結合（join）します。

* **separator**：セパレータ（オプション）。

## match(pattern\[, index]\[, option])

属性値で表される文字列から、 *pattern* パラメータで指定された正規表現に一致する箇所を検索します。

* **pattern**：一致させる正規表現パターン。
* **index**：返す一致の番号付きインデックス（オプション）。デフォルトは`0` です。
* **option**：正規表現オプションのカンマ区切りリスト（オプション）。よく使用されるオプションには、IgnoreCase、Multiline、Singleline、IgnorePatternWhitespace などがあります。

## print(\[delim])

属性のすべての値を指定された区切り文字で連結した文字列を返します。

* **delim**：値を区切る区切り文字（オプション）。デフォルトはカンマです。
