join() เป็น JavaScript standard array method (ES5+, ไม่ใช่ n8n-specific) แปลงทุกรายการในอาร์เรย์เป็นข้อความเดียวโดยคั่นด้วยตัวคั่นที่กำหนด คืนค่าเป็น string เสมอ ส่วนตัวผมชอบใช้คู่กับ map() และ filter() มากครับ เพราะสามารถ transform ข้อมูลก่อนรวมได้ มีประโยชน์ในการสร้าง CSV strings, รวมชื่อหลายคนเป็นรายการ, จัดรูปแบบแท็ก หรือแปลงอาร์เรย์เป็น formatted text เพื่อแสดงผลหรือส่งต่อ ที่เจ๋งคือรองรับตัวคั่นแบบกำหนดเอง (custom separators) และจัดการ null/undefined อัตโนมัติ
=array.join([separator])
=array.join([separator])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| separator | string | Optional | ',' | ตัวคั่นระหว่างรายการ (string ใดก็ได้) ถ้าไม่ระบุจะใช้เครื่องหมายจุลภาค ‘,’ เป็นค่าเริ่มต้น ใช้ ” (empty string) เพื่อรวมรายการติดกันโดยไม่มีตัวคั่น |
แปลงอาร์เรย์เป็น comma-separated values สำหรับส่งออกข้อมูล CSV หรือใช้ใน SQL queries
รวมชื่อหลายคนเป็นประโยค เช่น 'John, Jane and Bob' หรือรวมแท็กเป็น hashtags
แปลงอาร์เรย์เป็นรายการ bullet points หรือ numbered lists สำหรับแสดงผล
{{ ['John', 'Jane', 'Bob'].join(', ') }}={{ ['John', 'Jane', 'Bob'].join(', ') }}
"John, Jane, Bob"
{{ $json.items.map(x => x.id).join(',') }}={{ $json.items.map(x => x.id).join(',') }}
"101,102,103,104"
{{ ['H', 'e', 'l', 'l', 'o'].join('') }}={{ ['H', 'e', 'l', 'l', 'o'].join('') }}
"Hello"
{{ $json.tags.map(t => '#' + t).join(' ') }}={{ $json.tags.map(t => '#' + t).join(' ') }}
"#javascript #n8n #automation"
join() แปลง null และ undefined เป็น empty string (”) อัตโนมัติครับ เช่น [1, null, 3, undefined, 5].join(‘,’) จะได้ ‘1,,3,,5’ (ระหว่าง comma คือ empty string) ไม่ได้ ‘1,null,3,undefined,5’ ส่วนตัวผมคิดว่านี่เป็นพฤติกรรมที่ดีนะครับ เพราะไม่ต้อง filter null/undefined ออกก่อนใช้ join()
toString() เป็นวิธีพื้นฐานที่ใช้ comma (,) เป็น separator เสมอ ไม่สามารถกำหนด separator ได้ ส่วน join() ยืดหยุ่นกว่า สามารถกำหนด separator ใดก็ได้ เช่น arr.join(‘-‘) หรือ arr.join(‘ | ‘) เรียกได้ว่า join() คือ toString() แบบ customizable เลยครับ ส่วนตัวผมแนะนำให้ใช้ join() เสมอเพื่อความชัดเจนนะครับ
ได้ครับ แต่ที่ต้องรู้คือ nested arrays จะถูก flatten ด้วย comma เสมอ เช่น [[1, 2], [3, 4]].join(‘;’) จะได้ ‘1,2;3,4’ ซึ่ง sub-arrays [1,2] และ [3,4] ถูกแปลงเป็น string ด้วย comma แล้วรวมกันด้วย semicolon ส่วนตัวผมถ้าต้องการควบคุม nested arrays ให้มากกว่านี้ จะใช้ map() flatten ก่อนครับ
ใช่ครับ join() แปลง array → string ส่วน split() แปลง string → array ใช้คู่กันได้เลย เช่น ‘a,b,c’.split(‘,’).join(‘-‘) จะได้ ‘a-b-c’ (แยกด้วย comma แล้วรวมด้วย dash) เรียกได้ว่าเป็นคู่หูกันเลยครับ ส่วนตัวผมใช้ทั้งคู่บ่อยมากในงาน data transformation 😎
join() เป็น JavaScript standard array method (ES5+) ที่ใช้ได้ใน n8n expressions แปลงทุกรายการในอาร์เรย์เป็นข้อความเดียว โดยคั่นด้วยตัวคั่นที่กำหนด
.
ที่เจ๋งคือมันเป็นตรงข้ามของ split() เลย ถ้า split() แยกข้อความเป็นอาร์เรย์ join() ก็รวมอาร์เรย์เป็นข้อความ
.
ส่วนตัวผมใช้บ่อยมากครับ โดยเฉพาะเวลาต้องสร้าง CSV strings หรือรวมชื่อหลายคนเป็นประโยค 😎