> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 返却データの処理

> YiDAのAPIから返却されたデータを処理する方法を解説します。JavaScriptによる数値フィールドの条件判定・変換の実装例を交えながら、カスタム関数でデータを加工する手順をわかりやすく紹介します。

この関数では、APIから返却されたデータを処理できます。ボタンをクリックすると、以下のような初期関数の本体が表示されます。第一引数の`data`が返却されたデータです。JavaScriptを記述して`data`を処理し、結果を返します。

**例：**

APIが以下のデータを返却するとします。数値列を処理し、値が0以下の場合は0を、0より大きい場合は100を返す必要があります。

まず、APIのdataセクションを確認します。`data`は配列です。以下の例には4つの項目が含まれており、スプレッドシート内の4つのレコードに対応しています。各項目には2つの数値が含まれ、各レコード内の2つの値に対応しています。次に、2つの値のうちどちらが数値フィールドに対応するかを判別します。この例では、数値フィールドと編集時間フィールドのデータ形式が明らかに異なるため、一目で**field\_kr1zcs45が数値フィールドに対応し、field\_kr1zcs49がday\_編集時間に対応する**とわかります。データ量が多く一目で判別しにくい場合は、`meta`フィールドを用いて分析します。`aliasName`に「Numerical」を含む項目を探し、その`fieldId`が**field\_kr1zcs45**であることを確認します。

最後に、データを処理します。

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
/**
* Apply custom processing to the returned data
* Returned data reference: https://www.yuque.com/yida/support/xgg4ps
* data: the returned data
* extraInfo: { meta: [], cardParams: {} }, where meta is the data metadata and cardParams is the Card parameter information
*/
function afterFetch(data, extraInfo) {
  data.forEach(item => {
    // 値が0より大きいかチェック
    if (item['field_kr1zcs45'] > 0) {
      // 0より大きい場合は100に設定
      item['field_kr1zcs45'] = 100;
    } else {
      // それ以外の場合は0に設定
      item['field_kr1zcs45'] = 0;
    }
  });
  return data;
}
```
