---
title: keys() – ดึงชื่อคีย์จากอ็อบเจ็กต์
url: https://www.thepexcel.com/functions/n8n/object-functions/keys-n8n/
type: function-explainer
program: n8n
syntax: "{{ $json.fieldName.keys() }}"
date: 2025-12-16
updated: 2025-12-24
scores:
  popularity: 7
  difficulty: 2
  usefulness: 7
---

# keys() – ดึงชื่อคีย์จากอ็อบเจ็กต์

> keys() ดึงรายชื่อคีย์ทั้งหมดจากอ็อบเจ็กต์ ส่งคืนเป็นอาร์เรย์ ใช้สำรวจโครงสร้างข้อมูล วนลูป หรือแปลงข

## คำอธิบาย

keys() ดึงรายชื่อคีย์ทั้งหมดจากอ็อบเจ็กต์ ส่งคืนเป็นอาร์เรย์ ใช้สำรวจโครงสร้างข้อมูล วนลูป หรือแปลงข้อมูลจากอ็อบเจ็กต์

## Syntax

```excel
{{ $json.fieldName.keys() }}
```

**Variant**

```excel
Object.keys($json.data)
```

วิธีทางเลือก ใช้ Object.keys() โดยตรง

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| object (implicit) | Yes | Object |  | อ็อบเจ็กต์ที่ต้องการดึงคีย์ (ระบุเป็นโครงสร้าง $json.fieldName) |

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

### ตรวจสอบโครงสร้างข้อมูล

ดึงชื่อคีย์เพื่อรู้ว่าอ็อบเจ็กต์มีฟิลด์อะไรบ้าง

_เหมาะกับ:_ structure-inspection

### วนลูปผ่านคีย์

ใช้เพื่อวนลูปและประมวลผลแต่ละฟิลด์

_เหมาะกับ:_ dynamic-iteration

## ตัวอย่าง

### 1. ดึงคีย์จากอ็อบเจ็กต์ข้อมูล

```excel
{{ $json.user.keys() }}
```

**ผลลัพธ์:** `["id", "name", "email", "role"]`

สมมติ $json.user = {id: 123, name: 'John', email: 'john@example.com', role: 'admin'} จะคืนชื่อคีย์ทั้งหมดเป็นอาร์เรย์

### 2. นับจำนวนคีย์ในอ็อบเจ็กต์

```excel
{{ $json.data.keys().length }}
```

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

ใช้ .length เพื่อนับจำนวนคีย์ที่มีในอ็อบเจ็กต์ $json.data

### 3. สร้าง key-value pairs จากคีย์

```excel
{{ $json.customer.keys().map(k => ({key: k, value: $json.customer[k]})) }}
```

**ผลลัพธ์:** `[{"key": "id", "value": 123}, {"key": "name", "value": "Alice"}]`

วนลูปผ่านแต่ละคีย์และสร้าง object ใหม่ที่มีคู่ key-value แต่ละคู่

### 4. ตรวจสอบว่าคีย์ที่ต้องการมีอยู่

```excel
{{ $json.response.keys().includes('email') }}
```

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

ใช้ .includes() เพื่อตรวจสอบว่าคีย์ 'email' มีอยู่ในอ็อบเจ็กต์หรือไม่

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

- ใช้ keys() ร่วมกับ values() เพื่อดึงค่าทั้งหมด หรือ entries() เพื่อดึงทั้งคีย์และค่า

- ใช้ .filter() บน keys() ผลลัพธ์เพื่อกรองเฉพาะคีย์ที่ต้องการ

- เมื่อต้องการ key-value pairs ให้ใช้ reduce() แทน map() เพื่อประสิทธิภาพดีขึ้น

- ใช้ keys() ในเงื่อนไขของ IF Node เพื่อตรวจสอบโครงสร้างข้อมูลก่อนประมวลผล

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

**Q: keys() จะลำดับคีย์ตามลำดับใดบ้าง?**

keys() คืนค่าลำดับตามลำดับการเพิ่มคีย์ (insertion order) ใน Object ในลักษณะเดียวกับ JavaScript

**Q: keys() จะรับอาร์เรย์ได้หรือ?**

keys() ใช้กับอ็อบเจ็กต์เท่านั้น สำหรับอาร์เรย์ให้ใช้ .map() หรือ .forEach() แทน

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

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

**Q: ใช้กับ Set Node ได้หรือ?**

ได้ ใช้ในโหนด Set เพื่อตั้งค่าฟิลด์ใหม่ที่ขึ้นอยู่กับรายชื่อคีย์

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

- entries
- [map – แปลงแต่ละรายการในอาร์เรย์ (transform elements)](https://www.thepexcel.com/functions/n8n/array-functions/map-n8n/)
- [merge – รวมสองอ็อบเจ็กต์เข้าด้วยกัน โดยใช้ base wins principle (shallow merge)](https://www.thepexcel.com/functions/n8n/array-functions/merge-n8n/)
- [values – ดึงค่าทั้งหมดจากอ็อบเจ็กต์](https://www.thepexcel.com/functions/n8n/object-functions/values-n8n/)

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

- [n8n Expression Editor - JavaScript Methods](https://docs.n8n.io/code/expressions/) _(article)_
- [JavaScript Object.keys() MDN Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys) _(article)_
- [n8n Data Transformation Guide](https://docs.n8n.io/code/builtin/overview/) _(article)_

---

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