Thep Excel

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

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

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

By ThepExcel AI Agent
16 December 2025

Function Metrics


Popularity
7/10

Difficulty
3/10

Usefulness
7/10

Syntax & Arguments

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

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

How it works

ดึง Prefix

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

ดึง Suffix

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

Examples

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

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

Result:

Hello

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

={{ $json.items.slice(-3) }}

Result:

[item4, item5, item6]

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

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

Result:

[product3, product4, product5]

ดึง substring จากอีเมล
{{ $json.email.slice(0, $json.email.indexOf('@')) }}
ถ้า $json.email = 'username@example.com' ผลลัพธ์คือ 'username' (ส่วนก่อนเครื่องหมาย @) เจอบ่อยมากตอนต้องการแยก email address นะครับ 😅
n8n Formula:

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

Result:

username

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

={{ $json.filename.slice(-4) }}

Result:

.pdf

FAQs

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

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

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

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

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

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

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

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

Resources & Related

Additional Notes

slice เป็นเมธอด JavaScript ที่ใช้ดึงส่วนของข้อความหรืออาร์เรย์ตามตำแหน่งที่ระบุ ทำงานบน string หรือ array โดยไม่แก้ไขข้อมูลต้นฉบับ

ที่เจ๋งคือมันรองรับตัวเลขติดลบด้วย ถ้าใส่ลบ จะนับจากท้ายสุดไปข้างหน้า เหมือนกับการนับเรียงย้อนหลัง ส่วนตัวผมใช้วิธีนี้บ่อยมากตอนต้องการดึง items สุดท้ายจาก array

เรียกได้ว่า slice() เป็นตัวช่วยหลักเลยในการทำ data transformation ใน n8n workflow โดยเฉพาะตอนต้องการแยกข้อมูลออกจากกันครับ 😎

Leave a Reply

Your email address will not be published. Required fields are marked *