.compact() คือฟังก์ชันสำหรับทำความสะอาดข้อมูล โดยลบค่า falsy ทั้งหมด (null, undefined, false, 0, empty string) ออกจากอาร์เรย์ เหมาะมากสำหรับการเตรียมข้อมูลก่อนประมวลผลต่อ
Syntax
{{ $json.array.compact() }}
.compact() คือฟังก์ชันสำหรับทำความสะอาดข้อมูล โดยลบค่า falsy ทั้งหมด (null, undefined, false, 0, empty string) ออกจากอาร์เรย์ เหมาะมากสำหรับการเตรียมข้อมูลก่อนประมวลผลต่อ
{{ $json.array.compact() }}
.flatten() เป็นตัวลดมิติของ nested array ให้กลายเป็นอาร์เรย์เดียว สะดวกมากเวลาต้องประมวลผลข้อมูลซับซ้อนจาก API หรือ database ที่มีโครงสร้างแบบซ้อนๆ
{{ $json.arrayField.flatten() }} {{ $json.arrayField.flatten(depth) }}
.intersection() หาสมาชิกร่วมที่อยู่ในอาร์เรย์ทั้งสอง ฟังก์ชันนี้มีประโยชน์ในการค้นหาข้อมูลที่ตรงกัน เช่นลูกค้าร่วม หรือสินค้าที่ทั้งสองฝ่ายมี
{{ array1.intersection(array2) }}
append() เป็น n8n-specific array extension (ไม่ใช่ JavaScript method มาตรฐาน) เพิ่มค่าหรือรายการใหม่ต่อท้ายอาร์เรย์ คืนค่าเป็นอาร์เรย์ใหม่ (immutable – ไม่แก้ไขอาร์เรย์เดิม) มีประโยชน์ในการเพิ่มรายการใหม่ รวมข้อมูลจากหลายแหล่ง หรือสร้างอาร์เรย์แบบ incremental
array.append(value)
average คำนวณค่าเฉลี่ยเลขคณิต (arithmetic mean) ของตัวเลขทั้งหมดในอาร์เรย์ ใช้เมื่อต้องการหาค่าเฉลี่ยยอดขาย คะแนนเฉลี่ย อุณหภูมิเฉลี่ย หรือเมตริกอื่นๆ ในการประมวลผล workflow
array.average()
chunk แบ่งอาร์เรย์ออกเป็นชิ้นเล็กๆ โดยระบุขนาดของแต่ละชิ้น เมื่อมีข้อมูลจำนวนมาก ฟังก์ชันนี้ช่วยในการประมวลผลแบบ batch หรือส่งข้อมูลไปให้บริการภายนอกที่มีจำกัดการใช้งาน
chunk(array, size)
difference เปรียบเทียบอาร์เรย์สองตัว แล้วคืนค่าสมาชิกที่อยู่ในอาร์เรย์แรกเท่านั้น มีประโยชน์ในการหาข้อมูลใหม่ ข้อมูลที่หายไป หรือข้อมูลที่ไม่ตรงกัน
{{ $json.array1.difference($json.array2) }}
ตรวจสอบว่าทุกรายการใน array ตรงตามเงื่อนไขหรือไม่ คืนค่า true ถ้าทั้งหมดผ่าน false ถ้ามีสักอันไม่ผ่าน
$json.array.every(item => condition)
filter() เป็น JavaScript standard array method (ES2021+, ไม่ใช่ n8n-specific) กรองรายการในอาร์เรย์ตามเงื่อนไขที่กำหนด คืนค่าอาร์เรย์ใหม่ที่มีเฉพาะรายการที่ตรงตามเงื่อนไข (predicate function returns true) มีประโยชน์ในการเลือกข้อมูลเฉพาะส่วน ลบรายการที่ไม่ต้องการ หรือจัดกลุ่มข้อมูลตามเงื่อนไข
array.filter(predicate)
first() เป็น n8n array extension ที่ดึงสมาชิกตัวแรกจากอาร์เรย์ โดยไม่ต้องใช้ index notation [0] มีประโยชน์เมื่อต้องการเข้าถึงบันทึกแรก เมตาดาต้า header row หรือการทำให้โค้ด readable มากขึ้น
$json.array.first() หรือ {{ [array].first() }}
join() เป็น JavaScript standard array method (ES5+, ไม่ใช่ n8n-specific) แปลงทุกรายการในอาร์เรย์เป็นข้อความเดียวโดยคั่นด้วยตัวคั่นที่กำหนด คืนค่าเป็น string เสมอ ส่วนตัวผมชอบใช้คู่กับ map() และ filter() มากครับ เพราะสามารถ transform ข้อมูลก่อนรวมได้ มีประโยชน์ในการสร้าง CSV strings, รวมชื่อหลายคนเป็นรายการ, จัดรูปแบบแท็ก หรือแปลงอาร์เรย์เป็น formatted text เพื่อแสดงผลหรือส่งต่อ ที่เจ๋งคือรองรับตัวคั่นแบบกำหนดเอง (custom separators) และจัดการ null/undefined อัตโนมัติ
array.join([separator])
last() ดึงสมาชิกตัวสุดท้ายจากอาร์เรย์ เป็น n8n built-in method ที่ช่วยให้เข้าถึงข้อมูลล่าสุดได้ง่าย เช่น บันทึกล่าสุดจาก database, ความคิดเห็นล่าสุด, หรือ order ล่าสุดที่ถูกประมวลผล โดยไม่ต้องคำนวณ index เอง
array.last()
map() เป็น JavaScript standard array method (ES2021+, ไม่ใช่ n8n-specific) แปลงแต่ละรายการในอาร์เรย์โดยใช้ callback function คืนค่าอาร์เรย์ใหม่ที่มีความยาวเท่าเดิม แต่รายการถูก transform แล้ว มีประโยชน์ในการสกัด fields, คำนวณค่าใหม่ หรือแปลงรูปแบบข้อมูล
array.map(callback)
merge() เป็นเมธอดของ n8n ที่รวมอ็อบเจ็กต์สองตัวโดยใช้ base object (อ็อบเจ็กต์แรก) เป็นฐาน เมื่อคีย์ซ้ำกัน ค่าจาก base จะถูกเก็บไว้ สร้าง object ใหม่ (immutable) ไม่แก้ไข object เดิม ใช้ได้กับการสร้างค่าเริ่มต้น รวมข้อมูล หรือเพิ่ม metadata ให้ workflow results
baseObject.merge(objectToMerge)
pluck() ดึงค่าจากฟิลด์เดียวกันจากทุก object ในอาร์เรย์ เป็นวิธีที่รวดเร็วสำหรับการสกัดข้อมูลเดียว เช่นดึง email ทั้งหมด, ชื่อทั้งหมด, หรือ ID ทั้งหมดจากรายชื่อ
array.pluck(propertyName)
randomItem สุ่มเลือกรายการหนึ่งจากอาร์เรย์ที่ป้อน ฟังก์ชันนี้มีประโยชน์ในการสุ่มเลือกค่า สร้างตัวอย่างการทำงาน หรือการสาธิตเพื่อการทดสอบระบบ
randomItem(array)
reduce() เป็น JavaScript standard array method (ES2021+, ไม่ใช่ n8n-specific) ประมวลผลแต่ละรายการในอาร์เรย์โดยใช้ reducer function (accumulator, currentValue) => newAccumulator คืนค่าผลลัพธ์เดียวที่ได้จากการรวมหรือสะสมค่า มีประโยชน์ในการหาผลรวม ผลคูณ นับจำนวน สร้าง objects/maps หรือคำนวณค่า statistics
array.reduce((accumulator, currentValue) => newAccumulator, initialValue)
removeDuplicates ลบข้อมูลซ้ำออกจากอาร์เรย์ โดยเก็บเพียงอันแรกของแต่ละค่าเดียว ประโยชน์มากในการทำความสะอาดข้อมูล เช่นลบรายชื่อลูกค้า Email หรือ ID ที่ซ้ำ
{{ $json.array.removeDuplicates() }}
slice ดึงส่วนของข้อความหรืออาร์เรย์จากตำแหน่งเริ่มต้นถึงสิ้นสุด ใช้ได้กับทั้ง string และ array ในการตัดหรือสกัดข้อมูลบางส่วน
{{ $json.field.slice(start, end) }}
some() เป็น JavaScript array method ที่ใช้ตรวจสอบว่ามีรายการอย่างน้อยหนึ่งรายการในอาร์เรย์ผ่านเงื่อนไขที่กำหนดหรือไม่ โดยคืนค่า true ทันทีเมื่อเจอรายการแรกที่ผ่านเงื่อนไข และคืนค่า false ถ้าไม่มีรายการใดผ่านเลย ใช้บ่อยใน n8n workflow
array.some(callback)
sum() เป็น array method ที่รวมยอดตัวเลขทั้งหมดใน array ให้เป็นผลรวมเดียว ใช้บ่อยมากในการคำนวณยอดรวม ยอดขาย หรือ aggregation ของข้อมูลตัวเลข
$input.all().map(item => item.json.field).sum()
unique() เป็น n8n built-in array method ลบค่าซ้ำ (duplicates) ออกจากอาร์เรย์ คืนค่าอาร์เรย์ใหม่ที่มีเฉพาะค่าที่ไม่ซ้ำกัน เก็บลำดับการปรากฏครั้งแรก มีประโยชน์ในการทำความสะอาดข้อมูล หาค่าเฉพาะตัว หรือลบข้อมูลซ้ำจากรายการ
array.unique()