---
title: map – แปลงแต่ละรายการในอาร์เรย์ (transform elements)
url: https://www.thepexcel.com/functions/n8n/array-functions/map-n8n/
type: function-explainer
program: n8n
syntax: array.map(callback)
date: 2025-12-16
updated: 2025-12-17
scores:
  popularity: 9
  difficulty: 4
  usefulness: 9
---

# map – แปลงแต่ละรายการในอาร์เรย์ (transform elements)

> แปลงแต่ละรายการในอาร์เรย์ (คืนค่าอาร์เรย์ใหม่ความยาวเท่าเดิม)

## คำอธิบาย

map() เป็น JavaScript standard array method (ES2021+, ไม่ใช่ n8n-specific) แปลงแต่ละรายการในอาร์เรย์โดยใช้ callback function คืนค่าอาร์เรย์ใหม่ที่มีความยาวเท่าเดิม แต่รายการถูก transform แล้ว มีประโยชน์ในการสกัด fields, คำนวณค่าใหม่ หรือแปลงรูปแบบข้อมูล

## Syntax

```excel
array.map(callback)
```

**Variant**

```excel
$json.items.map(item => item.name)
```

สกัด field 'name' จากแต่ละรายการ

**Variant**

```excel
$json.products.map(p => ({ ...p, discountPrice: p.price * 0.8 }))
```

เพิ่ม field ใหม่ (discountPrice) ให้แต่ละ object

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| callback | Yes | function |  | ฟังก์ชันที่จะนำไปใช้กับแต่ละรายการ (element => transformedElement) คืนค่ารายการใหม่สำหรับแต่ละตำแหน่งในอาร์เรย์ |

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

### สกัด fields จาก objects

ดึง field เฉพาะจากแต่ละ object เช่น ชื่อ อีเมล หรือ ID

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

### คำนวณค่าใหม่

แปลงหรือคำนวณค่าใหม่สำหรับแต่ละรายการ เช่น ราคาลด ภาษี หรือสกุลเงิน

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

### เปลี่ยนรูปแบบข้อมูล

แปลงข้อมูลเป็นรูปแบบใหม่ เช่น uppercase, formatted dates, หรือ restructured objects

_เหมาะกับ:_ format-conversion

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: สกัด field เดียว

```excel
{{ [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }].map(u => u.name) }}
```

**ผลลัพธ์:** `['John', 'Jane']`

ดึงเฉพาะ field 'name' จากแต่ละ object ได้ array ของชื่อ

### 2. ตัวอย่างที่ 2: คำนวณราคาลด

```excel
{{ [{ name: 'A', price: 100 }, { name: 'B', price: 200 }].map(p => ({ name: p.name, salePrice: p.price * 0.8 })) }}
```

**ผลลัพธ์:** `[{ name: 'A', salePrice: 80 }, { name: 'B', salePrice: 160 }]`

สร้าง object ใหม่พร้อมชื่อและราคาลด 20% สำหรับแต่ละสินค้า

### 3. ตัวอย่างที่ 3: แปลงเป็น uppercase

```excel
{{ ['hello', 'world', 'test'].map(s => s.toUpperCase()) }}
```

**ผลลัพธ์:** `['HELLO', 'WORLD', 'TEST']`

แปลงทุก string เป็น uppercase โดยใช้ toUpperCase() กับแต่ละรายการ

### 4. ตัวอย่างที่ 4: เพิ่ม field ใหม่

```excel
{{ [1, 2, 3].map((n, index) => ({ value: n, position: index + 1, double: n * 2 })) }}
```

**ผลลัพธ์:** `[{ value: 1, position: 1, double: 2 }, { value: 2, position: 2, double: 4 }, ...]`

สร้าง object ใหม่พร้อม value เดิม, position, และ double value สำหรับแต่ละตัวเลข

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

⚠️ map() เป็น JavaScript standard method (ES2021+) ไม่ใช่ n8n-specific extension คืนค่าอาร์เรย์ใหม่ความยาวเท่าเดิมเสมอ (immutable) callback function ต้องคืนค่าสำหรับแต่ละรายการ รองรับการเข้าถึง index: array.map((element, index) => ...) ใช้คู่กับ filter(), reduce()

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

**Q: map() สร้างอาร์เรย์ใหม่หรือแก้ไขอาร์เรย์เดิม?**

สร้างอาร์เรย์ใหม่ (immutable) ไม่เปลี่ยนแปลงอาร์เรย์เดิม เช่น arr.map(x => x * 2) สร้าง array ใหม่ arr เดิมยังเหมือนเดิม

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

map() แปลงทุกรายการและคืนค่า array ความยาวเท่าเดิม (transform) ส่วน filter() เลือกเฉพาะรายการที่ตรงเงื่อนไขและคืนค่า array ที่อาจสั้นกว่า (select) ใช้ map() เมื่อต้องการ transform ใช้ filter() เมื่อต้องการ select

**Q: map() สามารถเปลี่ยน type ของรายการได้หรือไม่?**

ใช่ callback สามารถคืนค่า type ใดก็ได้ เช่น [1, 2, 3].map(n => 'Number: ' + n) แปลง numbers เป็น strings ได้ ['Number: 1', 'Number: 2', 'Number: 3']

**Q: ใช้ map() เมื่อไหร่?**

ใช้เมื่อต้องการ transform แต่ละรายการในอาร์เรย์ เช่น สกัด fields จาก objects คำนวณค่าใหม่ แปลงรูปแบบข้อมูล หรือเพิ่ม fields ใหม่ ใช้คู่กับ filter() เพื่อกรองก่อน transform ใช้คู่กับ reduce() เพื่อ aggregate หลัง transform

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

- [filter – กรองรายการจากอาร์เรย์ตามเงื่อนไข](https://www.thepexcel.com/functions/n8n/array-functions/filter-n8n/)
- [reduce – รวมหรือสะสมอาร์เรย์เป็นค่าเดียว (aggregate)](https://www.thepexcel.com/functions/n8n/array-functions/reduce-n8n/)
- find-n8n
- flat-map-n8n

---

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