---
title: removeDuplicates – ลบข้อมูลที่ซ้ำออกจากอาร์เรย์
url: https://www.thepexcel.com/functions/n8n/array-functions/remove-duplicates-n8n/
type: function-explainer
program: n8n
syntax: "{{ $json.array.removeDuplicates() }}"
date: 2025-12-16
updated: 2025-12-23
scores:
  popularity: 7
  difficulty: 3
  usefulness: 7
---

# removeDuplicates – ลบข้อมูลที่ซ้ำออกจากอาร์เรย์

> removeDuplicates ลบข้อมูลซ้ำออกจากอาร์เรย์ โดยเก็บเพียงอันแรกของแต่ละค่าเดียว ประโยชน์มากในการทำความ

## คำอธิบาย

removeDuplicates ลบข้อมูลซ้ำออกจากอาร์เรย์ โดยเก็บเพียงอันแรกของแต่ละค่าเดียว ประโยชน์มากในการทำความสะอาดข้อมูล เช่นลบรายชื่อลูกค้า Email หรือ ID ที่ซ้ำ

## Syntax

```excel
{{ $json.array.removeDuplicates() }}
```

**Variant**

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

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

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

### ทำความสะอาดรายชื่อ

ลบชื่อลูกค้าหรือสินค้าที่ซ้ำจากรายชื่อ

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

### สกัดข้อมูลเฉพาะตัว

ได้รับเพียงข้อมูลที่ไม่ซ้ำเท่านั้น

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

## ตัวอย่าง

### 1. ลบเลขที่ซ้ำจากอาร์เรย์

```excel
{{ $json.numbers.removeDuplicates() }}
```

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

ถ้า $json.numbers = [1, 2, 2, 3, 4, 4, 5] ผลลัพธ์คือ [1, 2, 3, 4, 5] เรียงตามลำดับดั้งเดิม ลบของซ้ำออกจากครั้งที่สอง ปกติจะใช้เคสแบบนี้เมื่อ ID หรือ numeric code มีซ้ำ

### 2. ลบอีเมลซ้ำจากรายชื่อลูกค้า

```excel
{{ $json.customerEmails.removeDuplicates() }}
```

**ผลลัพธ์:** `[alice@example.com, bob@example.com, carol@example.com]`

ถ้า customerEmails = [alice@example.com, bob@example.com, alice@example.com, carol@example.com] ผลลัพธ์คือ email ไม่ซ้ำ เพราะว่า alice@example.com มีซ้ำจึงลบออก ใช้เยอะมากตอนต้อง import email จากหลาย source ที่อาจมีซ้ำกัน 💡

### 3. ลบ tags ซ้ำออกจากรายการ

```excel
{{ $json.tags.removeDuplicates() }}
```

**ผลลัพธ์:** `[javascript, react, nodejs, express]`

ถ้า $json.tags = [javascript, react, javascript, nodejs, express, react] ผลลัพธ์คือ [javascript, react, nodejs, express] Tags ที่มีมากกว่า 1 ครั้งจะเก็บแค่ครั้งแรก ประโยชน์มากในการเก็บ skill tags หรือ category tags

### 4. ลบข้อมูลซ้ำจากผลการ map

```excel
{{ $json.users.map(u => u.role).removeDuplicates() }}
```

**ผลลัพธ์:** `[admin, user, moderator]`

ดึง role จากแต่ละ user แล้วลบ role ที่ซ้ำ ถ้า users มี [admin, user, admin, moderator, user] ผลลัพธ์คือ role ที่ไม่ซ้ำ ใช้เยอะในการหารายการประเภทต่างๆ ที่มี 💪

### 5. ทำความสะอาดข้อมูล import จาก CSV

```excel
{{ $json.importedNames.removeDuplicates() }}
```

**ผลลัพธ์:** `[John Smith, Jane Doe, Bob Johnson]`

เมื่อ import ชื่อจาก CSV file ที่มีหลายแถว บางครั้งชื่อเดียวกันอาจปรากฏหลายครั้ง removeDuplicates() จะให้ชื่อที่ไม่ซ้ำกันเท่านั้น นี่เป็นขั้นตอน essential ของ data cleaning ครับ ✨

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

- ใช้ removeDuplicates() หลังจาก map() เพื่อดึง unique values จาก nested data เช่น $json.orders.map(o => o.customerId).removeDuplicates() ได้รายชื่อ customer ที่ไม่ซ้ำ ประโยชน์ยิ่งมากเลย 💡

- ถ้ากังวลว่า array มี null/undefined ให้ใช้ compact().removeDuplicates() เพื่อลบค่าว่างออกก่อน แล้วตามด้วยลบซ้ำ ลำดับสำคัญมากนะครับ 🎯

- ⚠️ removeDuplicates() เปรียบเทียบด้วย strict equality (===) ดังนั้น '123' (string) กับ 123 (number) จะถูกมองว่าต่างกัน ถ้าต้องการเปรียบเทียบแบบ loose ต้องแปลง type ก่อนด้วย map()

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

**Q: removeDuplicates() จะทำงานกับ objects ได้ไหม?**

ไม่ได้ครับ removeDuplicates() ทำงานได้เฉพาะ primitive values (string, number, boolean) เท่านั้น สำหรับ objects คุณต้องใช้ map() + pluck() หรือ unique() แล้วแล้วแต่ว่าต้องการเปรียบเทียบแบบไหน

**Q: removeDuplicates() กับ unique() ต่างกันอย่างไร?**

removeDuplicates() เปรียบเทียบค่าด้วย strict equality (===) ดังนั้น 1 กับ '1' เป็นคนละตัว ส่วน unique() ใช้ loose comparison บางทีแปลว่า 1 กับ '1' อาจถูกมองว่าเหมือนกัน (ขึ้นอยู่กับ implementation) ส่วนตัวผมใช้ removeDuplicates() มากกว่าเพราะ strict equality ปลอดภัยกว่า

**Q: ใช้ removeDuplicates() ตรงไหนใน workflow?**

ใช้ได้ในหลายที่ เช่น Set Node (expression mode) Code Node Conditional Node เพื่อ filter output ส่วนตัวผมชอบใช้ใน Set Node เพื่อตั้ง field ลบซ้ำในตัวตั้งแต่แรก ประหยัดขั้นตอน 😎

**Q: ถ้า array มี null หรือ undefined จะเกิดอะไร?**

removeDuplicates() จะเก็บ null และ undefined ไว้ด้วย ถ้าเกี่ยงอยากลบออก ให้ใช้ compact() ก่อน เช่น $json.array.compact().removeDuplicates() สำคัญคือต้องเรียง compact() ก่อน removeDuplicates() นะครับ

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

- [n8n Docs: Expressions and Built-in Functions](https://docs.n8n.io/code/expressions/) _(article)_
- [n8n Community: Data Transformation](https://community.n8n.io/) _(article)_

---

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