---
title: chunk – ฟังก์ชันแบ่งอาร์เรย์เป็นชิ้นเล็กๆ
url: https://www.thepexcel.com/functions/n8n/array-functions/chunk-n8n/
type: function-explainer
program: n8n
syntax: "chunk(array, size)"
date: 2025-12-16
updated: 2025-12-17
scores:
  popularity: 5
  difficulty: 3
  usefulness: 5
---

# chunk – ฟังก์ชันแบ่งอาร์เรย์เป็นชิ้นเล็กๆ

> แบ่งอาร์เรย์ออกเป็นชิ้นๆ ตามขนาดที่กำหนด

## คำอธิบาย

chunk แบ่งอาร์เรย์ออกเป็นชิ้นเล็กๆ โดยระบุขนาดของแต่ละชิ้น เมื่อมีข้อมูลจำนวนมาก ฟังก์ชันนี้ช่วยในการประมวลผลแบบ batch หรือส่งข้อมูลไปให้บริการภายนอกที่มีจำกัดการใช้งาน

## Syntax

```excel
chunk(array, size)
```

**Variant**

```excel
$json.items.chunk(10)
```

ใช้เป็น method เพื่อแบ่ง $json.items เป็นชิ้นๆ ขนาด 10 รายการ

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| array | Yes | array |  | Array ที่ต้องการแบ่ง |
| size | Yes | number |  | จำนวนรายการในแต่ละชิ้น (เช่น 10, 50, 100) |

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

### ประมวลผล Batch API

แบ่งข้อมูลลูกค้าออกเป็นกลุ่ม 100 คนต่อ batch เพื่อส่งไปยัง CRM API ที่มีจำกัดในการประมวลผล

_เหมาะกับ:_ batch-processing

### การส่ง Email เป็นกลุ่มๆ

แบ่งรายชื่อผู้รับ email ออกเป็นชิ้นๆ เพื่อหลีกเลี่ยงการส่ง email มากเกินไปในครั้งเดียว

_เหมาะกับ:_ bulk-email

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: แบ่งอาร์เรย์เป็นชิ้น 3 รายการ

```excel
{{ chunk([1, 2, 3, 4, 5, 6, 7], 3) }}
```

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

ฟังก์ชันนี้แบ่ง array [1-7] ออกเป็นชิ้นๆ ขนาด 3 รายการต่อชิ้น ชิ้นสุดท้ายมีเพียง 1 รายการ

### 2. ตัวอย่างที่ 2: แบ่งข้อมูลสำหรับ Batch Processing

```excel
{{ chunk($json.customers, 50) }}
```

**ผลลัพธ์:** `[ชิ้นที่ 1 มี 50 ลูกค้า, ชิ้นที่ 2 มี 50 ลูกค้า, ...]`

สูตรนี้แบ่งรายชื่อลูกค้าทั้งหมดออกเป็นชิ้นๆ ขนาด 50 รายการ เพื่อส่งไปยัง API ที่มีจำกัด

### 3. ตัวอย่างที่ 3: ส่ง Email เป็นกลุ่ม

```excel
{{ chunk($node['Get Contacts'].json.data, 100).map(x => x) }}
```

**ผลลัพธ์:** `ข้อมูล email แบ่งเป็น batch ละ 100 คน`

ดึงข้อมูลผู้ติดต่อแล้วแบ่งออกเป็นชิ้นๆ ของ 100 คน เพื่อส่ง email เป็นกลุ่มๆ

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

⚠️ ฟังก์ชัน chunk() มีประโยชน์มากสำหรับ batch processing เมื่อต้องจัดการข้อมูลจำนวนมาก เหมาะสำหรับการส่งข้อมูลไปยัง API ที่มีข้อจำกัดจำนวนรายการต่อ request

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

**Q: ชิ้นสุดท้ายของ chunk() จะมีขนาดเท่ากับพารามิเตอร์ size หรือไม่?**

ไม่เสมอไป ชิ้นสุดท้ายอาจมีรายการน้อยกว่า size ถ้า array ไม่หารลงตัว

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

ใช้เมื่อต้องการแบ่งข้อมูลจำนวนมากเป็นชิ้นเล็กๆ เพื่อส่งไปให้บริการที่มีจำกัดการประมวลผล หรือเพื่อประมวลผลแบบ batch

**Q: chunk() จะไม่รับ array ว่างได้หรือ?**

ได้ เมื่อป้อน array ว่างเปล่า ฟังก์ชันจะคืนค่า empty array เป็นผลลัพธ์

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

- [.flatten() – ลดมิติของอาร์เรย์แบบซ้อน](https://www.thepexcel.com/functions/n8n/array-functions/flatten-n8n/)
- [slice – ดึงส่วนของข้อความหรืออาร์เรย์](https://www.thepexcel.com/functions/n8n/array-functions/slice-n8n/)
- [map – แปลงแต่ละรายการในอาร์เรย์ (transform elements)](https://www.thepexcel.com/functions/n8n/array-functions/map-n8n/)

---

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