first() เป็น n8n array extension ที่ดึงสมาชิกตัวแรกจากอาร์เรย์ โดยไม่ต้องใช้ index notation [0] มีประโยชน์เมื่อต้องการเข้าถึงบันทึกแรก เมตาดาต้า header row หรือการทำให้โค้ด readable มากขึ้น
=$json.array.first() หรือ {{ [array].first() }}
=$json.array.first() หรือ {{ [array].first() }}
ดึงบันทึกแรกจากผลการค้นหาจากฐานข้อมูล
ดึงสินค้าแรกจากรายชื่อสำหรับแสดงเป็น featured item
{{ ['apple', 'banana', 'orange'].first() }}={{ ['apple', 'banana', 'orange'].first() }}
'apple'
{{ $json.records.first() }}={{ $json.records.first() }}
{"id": 1, "name": "John", "email": "john@example.com"}
{{ $json.users.first().email }}={{ $json.users.first().email }}
'john@example.com'
{{ $node['Query Database'].json.results.first().id }}={{ $node['Query Database'].json.results.first().id }}
12345
หาก array ว่าง first() จะคืนค่า undefined คุณควรตรวจสอบความยาว array ก่อน หรือใช้ fallback: $json.items.first() || ‘default value’
ทั้งสองให้ผลลัพธ์เดียวกัน แต่ first() readable และ intent ชัดเจนกว่า [0] ส่วนใหญ่ใช้ first() ใน n8n เพราะ clean code
ได้ เช่น ดึกตัวแรก: $json.data.first() ดึกตัวสุดท้าย: $json.data.last() ประโยชน์ในการ compare หรือทำ bookend logic
first() ใช้ได้เฉพาะ arrays เมื่อเป็น array of objects first() จะดึงวัตถุแรก คุณสามารถเข้าถึง properties ของมันได้ เช่น $json.items.first().name
first() ดึงสมาชิกตัวแรกจากอาร์เรย์โดยตรง ไม่เหมือนการใช้ [0] ที่อาจ confusing ในบางครั้ง first() มี intent ที่ชัดเจนว่า ‘ดึงตัวแรก’
ส่วนตัวผมใช้ first() ในการ iterate n8n workflows ที่ต้องการดึงข้อมูลแรก เช่นดึง header จากตารางหรือรับบันทึกแรกจาก API results ปลอดภัยกว่า hardcoding [0] เพราะอ่านโค้ดเข้าใจง่ายกว่า 😎