---
title: hasField – ตรวจสอบว่าอ็อบเจ็กต์มี field หรือไม่
url: https://www.thepexcel.com/functions/n8n/object-functions/has-field-n8n/
type: function-explainer
program: n8n
syntax: "$json.hasField('fieldName')"
date: 2025-12-16
updated: 2025-12-22
scores:
  popularity: 8
  difficulty: 2
  usefulness: 8
---

# hasField – ตรวจสอบว่าอ็อบเจ็กต์มี field หรือไม่

> hasField() คือ method ที่ใช้ตรวจสอบว่าอ็อบเจ็กต์มี field หรือ key ที่ระบุหรือไม่ คืนค่า true ถ้ามี f

## คำอธิบาย

hasField() คือ method ที่ใช้ตรวจสอบว่าอ็อบเจ็กต์มี field หรือ key ที่ระบุหรือไม่ คืนค่า true ถ้ามี field นั้น false ถ้าไม่มี มีประโยชน์สำหรับป้องกัน error เวลาเข้าถึง field ที่อาจจะไม่มีอยู่

## Syntax

```excel
$json.hasField('fieldName')
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| fieldName | Yes | String |  | ชื่อ field หรือ key ที่ต้องการตรวจสอบว่ามีอยู่ใน object หรือไม่ |

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

### Scenario 1

General usage

_เหมาะกับ:_ general

## ตัวอย่าง

### 1. ตรวจสอบว่า object มี field หรือไม่ (พื้นฐาน)

```excel
{{ $json.hasField('email') }}
```

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

สมมติ $json = {name: 'John', email: 'john@example.com', age: 30} ผลลัพธ์จะเป็น true เพราะมี field 'email' อยู่

### 2. ใช้กับ IF node เพื่อจัดการข้อมูลที่ไม่สมบูรณ์

```excel
{{ $json.hasField('phone_number') }}
```

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

ใช้ในการตัดสินใจว่าจะประมวลผล phone_number ต่อหรือไม่ ถ้า false ก็ข้ามไปกิจกรรมอื่นแทน

### 3. ตรวจสอบหลาย field ด้วย AND/OR logic

```excel
{{ $json.hasField('firstName') && $json.hasField('lastName') }}
```

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

ตรวจสอบว่าอ็อบเจ็กต์มีทั้ง firstName และ lastName หรือไม่ เหมาะสำหรับ validation ก่อนส่งข้อมูลไป email template

### 4. ใช้ในการ Set field แบบมีเงื่อนไข

```excel
{{ $json.hasField('customField') ? $json.customField : 'No custom field' }}
```

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

ถ้า $json มี customField ให้ใช้ค่านั้น ถ้าไม่มีให้ใช้ค่า default 'No custom field' แบบนี้ช่วยหลีกเลี่ยง undefined error

### 5. ตรวจสอบ nested field (ใน field อื่น)

```excel
{{ $json.user.hasField('email') }}
```

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

ตรวจสอบว่า $json.user (object ข้างใน) มี email field หรือไม่ ใช้ได้เมื่อข้อมูลมี nested structure

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

- ใช้ hasField() ร่วมกับ Ternary Operator (? :) เพื่อ set default value ได้อย่างสง่างาม

- ใช้ && และ || เพื่อตรวจสอบหลาย field พร้อมกัน เช่น $json.hasField('email') && $json.hasField('phone')

- ในเมื่อ workflow รับข้อมูลจาก API หลายที่ที่อาจมีโครงสร้างต่างกัน hasField() จะช่วยให้ workflow ของคุณทำงานได้หลากหลายข้อมูล

- ลองใช้ hasField() ใน IF node เพื่อ branch workflow ตามว่า field มีอยู่หรือไม่

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

**Q: ต่างกันยังไง hasField กับการใช้ optional chaining (?.) ของ JavaScript**

hasField() คืนค่า true/false อย่างชัดเจน ถ้าคุณต้องการตรวจสอบแล้ว branch logic อื่น ก็เหมาะสุด optional chaining ใช้ดีตอนที่คุณแค่อยากเข้าถึง field แบบปลอดภัยโดยไม่ error

**Q: hasField() จะตรวจสอบ undefined vs null ต่างกันหรือเหมือนกัน**

hasField() ตรวจสอบการมีอยู่ของ key เท่านั้น แม้ว่าค่าจะเป็น null ก็จะคืนค่า true หากมี key นั้น ถ้าหากต้องการตรวจสอบว่าค่าเป็น null หรือไม่ ลองใช้ !== null แยกต่อไป

**Q: ใช้ hasField() ได้กับ array หรือไม่**

hasField() ใช้กับ object (key-value pair) เท่านั้น ถ้าต้องการตรวจสอบว่า array มี element บ้าง ลองใช้ .length > 0 หรือ .includes() แทนครับ

**Q: ทำไมต้องใช้ hasField() แทนที่จะเข้าถึง field โดยตรง เช่น $json.email**

ถ้าเข้าถึงโดยตรงแล้ว field ไม่มีอยู่ คุณจะได้ undefined ซึ่งอาจทำให้ workflow error ได้ hasField() ช่วยให้คุณเช็คก่อนตัดสินใจว่าจะทำอะไรต่อไป ป้องกัน error ได้ดีเลย

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

- [keys() – ดึงชื่อคีย์จากอ็อบเจ็กต์](https://www.thepexcel.com/functions/n8n/object-functions/keys-n8n/)
- [values – ดึงค่าทั้งหมดจากอ็อบเจ็กต์](https://www.thepexcel.com/functions/n8n/object-functions/values-n8n/)
- [.compact() – ฟังก์ชันลบค่า Falsy ออกจากอาร์เรย์](https://www.thepexcel.com/functions/n8n/array-functions/compact-n8n/)
- remove-field-n8n

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

- [n8n Data Transformation Functions for Objects](https://docs.n8n.io/code/builtin/data-transformation-functions/objects/) _(article)_
- [n8n Expressions Documentation](https://docs.n8n.io/code/expressions/) _(article)_
- [MDN: Object.hasOwnProperty()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty) _(article)_

---

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