---
title: slice – ดึงส่วนของข้อความหรืออาร์เรย์
url: https://www.thepexcel.com/functions/n8n/array-functions/slice-n8n/
type: function-explainer
program: n8n
syntax: "{{ $json.field.slice(start, end) }}"
date: 2025-12-16
updated: 2025-12-23
scores:
  popularity: 7
  difficulty: 3
  usefulness: 7
---

# slice – ดึงส่วนของข้อความหรืออาร์เรย์

> slice ดึงส่วนของข้อความหรืออาร์เรย์จากตำแหน่งเริ่มต้นถึงสิ้นสุด ใช้ได้กับทั้ง string และ array ในการ

## คำอธิบาย

slice ดึงส่วนของข้อความหรืออาร์เรย์จากตำแหน่งเริ่มต้นถึงสิ้นสุด ใช้ได้กับทั้ง string และ array ในการตัดหรือสกัดข้อมูลบางส่วน

## Syntax

```excel
{{ $json.field.slice(start, end) }}
```

**Variant**

```excel
$json.code.slice(0, 3)
```

ดึง 3 ตัวอักษรแรก

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| start | No | number | 0 | ตำแหน่งเริ่มต้น (0-indexed) ถ้าเป็นลบจะนับจากท้ายสุด default คือ 0 |
| end | No | number |  | ตำแหน่งสิ้นสุด (ไม่รวม end position) ถ้าไม่ระบุจะดึงจนถึงท้าย |

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

### ดึง Prefix

ดึง 3 ตัวอักษรแรกจากรหัส

_เหมาะกับ:_ prefix-extraction

### ดึง Suffix

ดึง 2 ตัวอักษรสุดท้าย

_เหมาะกับ:_ suffix-extraction

## ตัวอย่าง

### 1. ดึง characters จากข้อความ

```excel
{{ $json.text.slice(0, 5) }}
```

**ผลลัพธ์:** `Hello`

ถ้า $json.text = 'Hello World' ผลลัพธ์คือ 'Hello' (5 ตัวอักษรแรก) slice() ระบุตำแหน่งเริ่มต้นเป็น 0 และสิ้นสุดเป็น 5 (ไม่รวม position 5)

### 2. ดึง items สุดท้ายจาก array

```excel
{{ $json.items.slice(-3) }}
```

**ผลลัพธ์:** `[item4, item5, item6]`

ถ้า $json.items = [item1, item2, item3, item4, item5, item6] ผลลัพธ์คือ 3 items สุดท้าย ที่เจ๋งคือการใช้ตัวเลขติดลบทำให้ไม่ต้องรู้ว่า array มีกี่ตัวก็ได้ ส่วนตัวผมใช้วิธีนี้บ่อยมากครับ 💡

### 3. ดึงส่วนกลางของ array

```excel
{{ $json.products.slice(2, 5) }}
```

**ผลลัพธ์:** `[product3, product4, product5]`

ถ้า $json.products มี 8 items ผลลัพธ์คือ items ลำดับที่ 3, 4, 5 (position 2 ถึง 4 เพราะ slice ไม่รวม end position) ใช้งานนี้ได้มากในการ pagination หรือดึง subset ของข้อมูล

### 4. ดึง substring จากอีเมล

```excel
{{ $json.email.slice(0, $json.email.indexOf('@')) }}
```

**ผลลัพธ์:** `username`

ถ้า $json.email = 'username@example.com' ผลลัพธ์คือ 'username' (ส่วนก่อนเครื่องหมาย @) เจอบ่อยมากตอนต้องการแยก email address นะครับ 😅

### 5. ดึง substring จากหลัง (ไม่รู้ความยาว)

```excel
{{ $json.filename.slice(-4) }}
```

**ผลลัพธ์:** `.pdf`

ถ้า $json.filename = 'document.pdf' ผลลัพธ์คือ '.pdf' (4 ตัวสุดท้าย) ใช้สำหรับดึง file extension ได้เลยไม่ต้องรู้ชื่อไฟล์ยาวแค่ไหน

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

- ใช้ slice(-n) เพื่อดึง n items สุดท้าย เช่น $json.logs.slice(-5) ดึง 5 log entry สุดท้าย นี่เป็น pattern ที่ผมใช้บ่อยมากครับ 💡

- ผสม slice() กับ indexOf() ได้ เช่น text.slice(0, text.indexOf(':')) เพื่อดึงส่วนก่อนเครื่องหมายโคลอน ทำให้ code readable ขึ้นเยอะ

- ⚠️ หลังใช้ slice() กับ array จำไว้ว่าตำแหน่ง (index) ใน original array เปลี่ยนแล้ว ถ้า item แรกใน original คือ position 0 ใน slice() ก็จะเป็น position 0 ในผลลัพธ์เหมือนเดิมครับ

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

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

ทั้งสองดึงข้อความจาก string ได้ แต่ slice() ทำได้ทั้ง string และ array ส่วน substring() ใช้ได้เฉพาะ string เท่านั้น และสำคัญคือ slice() รองรับตัวเลขติดลบ ส่วน substring() ไม่รองรับนะครับ

**Q: ถ้า start มากกว่า end จะเกิดอะไร?**

ถ้า start > end ผลลัพธ์จะเป็น empty string หรือ empty array เพราะไม่มี position ที่ตรงกัน ก็เลยได้ค่าว่างออกมาครับ

**Q: slice() จะสร้างข้อมูลใหม่หรือแก้ไขเดิม?**

slice() สร้าง shallow copy ใหม่ ไม่แก้ไข original data เลย ดังนั้นปลอดภัยในการใช้งานครับ ส่วนตัวผมชอบจุดนี้มากเพราะไม่ต้องกังวล data เดิมจะเสีย 😎

**Q: ใช้ slice() กับ Set Node ได้ไหม?**

ได้ครับ! ใน Set Node ให้ตั้ง mode เป็น Expression แล้วใส่ {{ $json.field.slice(...) }} ก็ได้แล้ว ลองใช้ดูครับ

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

- [n8n Docs: Expressions and Code](https://docs.n8n.io/code/expressions/) _(article)_
- [MDN Web Docs: String.prototype.slice()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice) _(article)_
- [MDN Web Docs: Array.prototype.slice()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) _(article)_

---

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