---
schema_version: "1"
id: 1360307ec1e8605890275a7f73c4cffc22249ed30d9604ce350e73ba16ddabb8
title: distinctBy
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/dataweave/2.5/dw-core-functions-distinctby.md
canonical_url: https://docs.mulesoft.com/jp/dataweave/2.5/dw-core-functions-distinctby
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 81661aa6f8d78a873d2bd7fdec2774e7b58ddbbd73039de5d565a9487a2555a5
description: MuleSoft Documentation Site
release: "2.5"
latest: false
---
# distinctBy

## [](#distinctby1)distinctBy<T>(@StreamCapable items: Array<T>, criteria: (item: T, index: Number) -> Any): Array<T>

入力を反復処理し、一意の要素を配列に返します。

DataWeave では、一意性の条件として指定したラムダの結果が使用されます。

このバージョンの ​`distinctBy`​ 項目は、配列内の一意の値を検索します。その他のバージョンは、オブジェクトで動作し、​`null`​ 値を処理します。

### [](#パラメーター)パラメーター

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">名前</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>items</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">評価する配列。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>criteria</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">配列から ​<code>item</code>​ または ​<code>index</code>​ を選択するために使用する条件。</p></td>
</tr>
</tbody>
</table>

### [](#例)例

次の例では、重複する数値を含む配列を入力し、その入力からの一意の数値を含む配列を返します。値の代わりに匿名パラメーターを使用して同じ式を記述することができます (​`[0, 1, 2, 3, 3, 2, 1, 4] distinctBy $`​)。

#### [](#ソース)ソース

```DataWeave
%dw 2.0
output application/json
---
[0, 1, 2, 3, 3, 2, 1, 4] distinctBy (value) -> { "unique" : value }
```

#### [](#出力)出力

```JSON
[ 0, 1, 2, 3, 4]
```

### [](#例-2)例

次の例では、配列から ​`"Kurt Cagle"`​ の重複を削除します。

#### [](#ソース-2)ソース

```DataWeave
%dw 2.0
output application/json
var record =  {
  "title": "XQuery Kick Start",
  "author": [
    "James McGovern",
    "Per Bothner",
    "Kurt Cagle",
    "James Linn",
    "Kurt Cagle",
    "Kurt Cagle",
    "Kurt Cagle",
    "Vaidyanathan Nagarajan"
  ],
  "year":"2000"
}
---
{
    "book" : {
      "title" : record.title,
      "year" : record.year,
      "authors" : record.author distinctBy $
    }
}
```

#### [](#出力-2)出力

```JSON
{
  "book": {
    "title": "XQuery Kick Start",
    "year": "2000",
    "authors": [
      "James McGovern",
      "Per Bothner",
      "Kurt Cagle",
      "James Linn",
      "Vaidyanathan Nagarajan"
    ]
  }
}
```

## [](#distinctby2)distinctBy<K, V>(object: { (K)?: V }, criteria: (value: V, key: K) -> Any): Object

オブジェクトから重複するキー-値ペアを削除します。

### [](#パラメーター-2)パラメーター

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">名前</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>object</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">キー-値ペアを削除する元のオブジェクト。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>criteria</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">削除するキー-値ペアを識別するために使用する ​<code>key</code>​ (キー) および/または ​<code>value</code>​ (値)。</p></td>
</tr>
</tbody>
</table>

### [](#例-3)例

次の例では、重複するキー-値ペアを含むオブジェクトを入力し、その入力のキー-値ペアを含むオブジェクトを返します。キー (​`a`​ と ​`A`​) は大文字と小文字を区別して処理されませんが、値 (​`b`​ と ​`B`​) は大文字と小文字を区別して処理されます。値の代わりに匿名パラメーターを使用して同じ式を記述することができます (​`{a : "b", a : "b", A : "b", a : "B"} distinctBy $`​)。

#### [](#ソース-3)ソース

```DataWeave
%dw 2.0
output application/json
---
{a : "b", a : "b", A : "b", a : "B"} distinctBy (value) -> { "unique" : value }
```

#### [](#出力-3)出力

```JSON
{ "a": "b", "a": "B" }
```

### [](#例-4)例

次の例では、​`<book/>`​ から重複 (​`<author>James McGovern</author>`​) を削除します。

#### [](#ソース-4)ソース

```DataWeave
%dw 2.0
output application/xml
---
{
   book : {
     title : payload.book.title,
     authors: payload.book.&author distinctBy $
   }
}
```

#### [](#入力)入力

```XML
<book>
  <title> "XQuery Kick Start"</title>
  <author>James Linn</author>
  <author>Per Bothner</author>
  <author>James McGovern</author>
  <author>James McGovern</author>
  <author>James McGovern</author>
</book>
```

#### [](#出力-4)出力

```XML
<book>
  <title> "XQuery Kick Start"</title>
  <authors>
      <author>James Linn</author>
      <author>Per Bothner</author>
      <author>James McGovern</author>
  </authors>
</book>
```

## [](#distinctby3)distinctBy(@StreamCapable items: Null, criteria: (item: Nothing, index: Nothing) -> Any): Null

`distinctBy`​ を ​`null`​ 値に使用できるようにするヘルパー関数。