---
title: unique – ลบค่าซ้ำออกจากอาร์เรย์
url: https://www.thepexcel.com/functions/n8n/array-functions/unique-n8n/
type: function-explainer
program: n8n
syntax: array.unique()
date: 2025-12-16
updated: 2025-12-22
scores:
  popularity: 8
  difficulty: 3
  usefulness: 8
---

# unique – ลบค่าซ้ำออกจากอาร์เรย์

> unique() เป็น n8n built-in array method ลบค่าซ้ำ (duplicates) ออกจากอาร์เรย์ คืนค่าอาร์เรย์ใหม่ที่มี

## คำอธิบาย

unique() เป็น n8n built-in array method ลบค่าซ้ำ (duplicates) ออกจากอาร์เรย์ คืนค่าอาร์เรย์ใหม่ที่มีเฉพาะค่าที่ไม่ซ้ำกัน เก็บลำดับการปรากฏครั้งแรก มีประโยชน์ในการทำความสะอาดข้อมูล หาค่าเฉพาะตัว หรือลบข้อมูลซ้ำจากรายการ

## Syntax

```excel
array.unique()
```

**Variant**

```excel
$json.items.unique()
```

ใช้เป็น method เมื่อ $json.items เป็น array

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| array | Yes | array |  | อาร์เรย์ที่มีค่าซ้ำที่ต้องการลบออก สามารถเป็นอาร์เรย์ของจำนวน สตริง หรือค่า primitive |

## เคสการใช้งาน

### ทำความสะอาดข้อมูล

ลบข้อมูลซ้ำเพื่อให้ได้เฉพาะค่าที่ไม่ซ้ำกัน

_เหมาะกับ:_ data-deduplication

### หารายชื่อเฉพาะตัว

สกัดชื่อ สินค้า หรือหมวดหมู่ที่ไม่ซ้ำจากรายชื่อยาว

_เหมาะกับ:_ distinct-values

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ลบตัวเลขที่ซ้ำ

```excel
{{ [1, 2, 2, 3, 3, 3, 4, 4, 4, 4].unique() }}
```

**ผลลัพธ์:** `[1, 2, 3, 4]`

ฟังก์ชันลบตัวเลขที่ซ้ำออก เหลือเพียงค่าเฉพาะตัว [1, 2, 3, 4] เก็บลำดับการปรากฏครั้งแรก

### 2. ตัวอย่างที่ 2: ลบชื่อที่ซ้ำจาก JSON

```excel
{{ $json.names.unique() }}
```

**ผลลัพธ์:** `["John", "Jane", "Bob", "Alice"]`

สมมติ $json.names = ["John", "Jane", "John", "Bob", "Alice", "Jane"] ได้ผลลัพธ์คือ ["John", "Jane", "Bob", "Alice"] (เอาชื่อที่ปรากฏหลัง ๆ ออก)

### 3. ตัวอย่างที่ 3: สกัดหมวดหมู่ที่ไม่ซ้ำจากบทความ

```excel
{{ $json.articles.map(a => a.category).unique() }}
```

**ผลลัพธ์:** `["tech", "business", "entertainment", "sports"]`

ดึงหมวดหมู่ (category) จากทุกบทความ แล้วใช้ unique() เอาหมวดหมู่ที่ซ้ำออก ได้รายการหมวดหมู่ที่ไม่ซ้ำกัน

### 4. ตัวอย่างที่ 4: ลบโดเมนซ้ำจากลิสต์อีเมล

```excel
{{ $json.contacts.map(c => c.email.extractDomain()).unique() }}
```

**ผลลัพธ์:** `["example.com", "gmail.com", "company.org"]`

ดึงโดเมนจากอีเมลของทุกติดต่อ (contact) แล้วใช้ unique() เอาโดเมนที่ซ้ำออก ผลคือรายการโดเมนที่ไม่ซ้ำกัน

### 5. ตัวอย่างที่ 5: ค้นหา unique URLs จากลิสต์การเข้าชม

```excel
{{ $json.visits.map(v => v.url.extractUrlPath()).unique() }}
```

**ผลลัพธ์:** `["/home", "/about", "/products", "/contact"]`

สกัด path จากทุก visited URLs (เช่น "/home" จาก "example.com/home") แล้วใช้ unique() เอา paths ที่ซ้ำออก

## หมายเหตุเพิ่มเติม

- ⚠️ unique() ลบซ้ำระดับค่า (by value) ไม่ใช่ reference ใช้คู่กับ map() เมื่อต้องการเอาซ้ำจาก object properties เช่น .map(x => x.id).unique()

- unique() เก็บลำดับการปรากฏครั้งแรก ถ้าต้องการเรียงลำดับ ให้ใช้ .unique().sort() ต่อ

- unique() คืนค่าอาร์เรย์ใหม่ (ไม่แก้ไขอาร์เรย์เดิม) สามารถ chain กับ filter(), map(), sort(), join() ได้

## คำถามที่พบบ่อย

**Q: unique() จะเก็บลำดับดั้งเดิมหรือไม่?**

ใช่ unique() เก็บลำดับการปรากฏครั้งแรก (first occurrence order) ถ้า array มี [3, 1, 2, 1, 3] ผลคือ [3, 1, 2] (ไม่ใช่เรียงลำดับตัวเลข)

**Q: unique() จะใช้ได้กับอาร์เรย์ของ objects ไหม?**

ไม่ได้ดีนัก unique() เปรียบเทียบ reference object ไม่ใช่ค่า สำหรับ objects ให้ดึง field ก่อน เช่น $json.items.map(i => i.id).unique()

**Q: unique() กับ Set และ filter().indexOf() ต่างกันอย่างไร?**

unique() เป็น n8n method ง่ายที่สุด Set คือ JavaScript set (สร้างด้วย new Set()) filter().indexOf() เป็นวิธี manual ที่เก็บลำดับเดิม ทั้งสามวิธีลบซ้ำได้ แต่ unique() เหมาะสุดสำหรับ n8n

**Q: unique() ทำงานกับค่า null, undefined, 0 ยังไง?**

unique() ลบค่าซ้ำของทุกประเภท รวม null, undefined, 0, false, empty string ถ้า array มี [1, null, 2, null, 3] ได้ [1, null, 2, 3] (เอา null ที่สองออก)

**Q: ใช้ unique() เมื่อไหร่ในการทำงาน workflow?**

ใช้เมื่อต้องการเอาข้อมูลซ้ำออก เช่น สร้างรายชื่อเฉพาะตัว หาหมวดหมู่ที่ไม่ซ้ำ สกัดโดเมนจากอีเมลหลายรายการ หรือลบรายการซ้ำจาก API response

## ฟังก์ชันที่เกี่ยวข้อง

- [filter – กรองรายการจากอาร์เรย์ตามเงื่อนไข](https://www.thepexcel.com/functions/n8n/array-functions/filter-n8n/)
- [map – แปลงแต่ละรายการในอาร์เรย์ (transform elements)](https://www.thepexcel.com/functions/n8n/array-functions/map-n8n/)
- find-n8n
- [.compact() – ฟังก์ชันลบค่า Falsy ออกจากอาร์เรย์](https://www.thepexcel.com/functions/n8n/array-functions/compact-n8n/)
- [includes – ฟังก์ชันตรวจสอบว่าอาร์เรย์มีค่าใดค่าหนึ่งหรือไม่](https://www.thepexcel.com/functions/n8n/string-functions/includes-n8n/)

## แหล่งข้อมูลเพิ่มเติม

- [n8n Expressions Documentation](https://docs.n8n.io/code/expressions/) _(article)_
- [n8n Array Transformation Functions](https://docs.n8n.io/code/builtin/data-transformation-functions/arrays/) _(article)_
- [MDN: Set (for alternative deduplication)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) _(article)_

---

_Source: [https://www.thepexcel.com/functions/n8n/array-functions/unique-n8n/](https://www.thepexcel.com/functions/n8n/array-functions/unique-n8n/)_
