Thep Excel

reduce – รวมหรือสะสมอาร์เรย์เป็นค่าเดียว (aggregate)

reduce() เป็น JavaScript standard array method (ES2021+, ไม่ใช่ n8n-specific) ประมวลผลแต่ละรายการในอาร์เรย์โดยใช้ reducer function (accumulator, currentValue) => newAccumulator คืนค่าผลลัพธ์เดียวที่ได้จากการรวมหรือสะสมค่า มีประโยชน์ในการหาผลรวม ผลคูณ นับจำนวน สร้าง objects/maps หรือคำนวณค่า statistics

=array.reduce((accumulator, currentValue) => newAccumulator, initialValue)

By ThepExcel AI Agent
16 December 2025

Function Metrics


Popularity
6/10

Difficulty
6/10

Usefulness
7/10

Syntax & Arguments

=array.reduce((accumulator, currentValue) => newAccumulator, initialValue)

Argument Type Required Default Description
reducer function Yes ฟังก์ชัน reducer (accumulator, currentValue) => newAccumulator ที่รับค่าสะสมและรายการปัจจุบัน แล้วคืนค่าสะสมใหม่
initialValue any Optional ค่าเริ่มต้นของ accumulator (แนะนำให้ระบุเสมอ) ถ้าไม่ระบุจะใช้รายการแรกในอาร์เรย์

How it works

หาผลรวม/ผลคูณ

รวมราคา ยอดขาย หรือคำนวณค่า statistics จากอาร์เรย์

นับจำนวนตามเงื่อนไข

นับรายการที่ตรงเงื่อนไข เช่น สินค้าที่มีในสต็อก ผู้ใช้ที่ active

สร้าง object/map

แปลง array เป็น object/map โดยใช้ key เฉพาะ เช่น user ID หรือ product code

Examples

ตัวอย่างที่ 1: หาผลรวมตัวเลข
{{ [1, 2, 3, 4, 5].reduce((sum, n) => sum + n, 0) }}
รวมตัวเลข: เริ่มจาก 0 + 1 → 1 + 2 → 3 + 3 → 6 + 4 → 10 + 5 = 15
n8n Formula:

={{ [1, 2, 3, 4, 5].reduce((sum, n) => sum + n, 0) }}

Result:

15

ตัวอย่างที่ 2: รวมราคาสินค้า
{{ [{ name: 'A', price: 100 }, { name: 'B', price: 200 }, { name: 'C', price: 150 }].reduce((total, item) => total + item.price, 0) }}
รวมราคาสินค้าทั้งหมด: 0 + 100 + 200 + 150 = 450
n8n Formula:

={{ [{ name: 'A', price: 100 }, { name: 'B', price: 200 }, { name: 'C', price: 150 }].reduce((total, item) => total + item.price, 0) }}

Result:

450

ตัวอย่างที่ 3: นับจำนวนตามเงื่อนไข
{{ [{ name: 'A', inStock: true }, { name: 'B', inStock: false }, { name: 'C', inStock: true }].reduce((count, item) => item.inStock ? count + 1 : count, 0) }}
นับสินค้าที่ inStock === true ได้ 2 รายการ (A และ C)
n8n Formula:

={{ [{ name: 'A', inStock: true }, { name: 'B', inStock: false }, { name: 'C', inStock: true }].reduce((count, item) => item.inStock ? count + 1 : count, 0) }}

Result:

2

ตัวอย่างที่ 4: สร้าง object map โดยใช้ ID เป็น key
{{ [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }].reduce((map, user) => ({ ...map, [user.id]: user.name }), {}) }}
แปลง array เป็น object map ที่ใช้ user ID เป็น key และ name เป็น value
n8n Formula:

={{ [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }].reduce((map, user) => ({ ...map, [user.id]: user.name }), {}) }}

Result:

{ '1': 'John', '2': 'Jane' }

FAQs

reduce() ต้องระบุ initialValue หรือไม่?

ไม่บังคับ แต่แนะนำให้ระบุเสมอเพื่อหลีกเลี่ยง errors ถ้าไม่ระบุจะใช้รายการแรกเป็น initialValue และเริ่มลูปจากรายการที่ 2 ซึ่งอาจทำให้เกิดปัญหาถ้า array ว่าง

reduce() กับ map() + sum() ต่างกันอย่างไร?

reduce() ยืดหยุ่นกว่า ทำได้หลายอย่าง (sum, count, object creation) ใน 1 ลูป ส่วน map() + sum() ต้องลูป 2 รอบ แต่ map() + sum() อ่านง่ายกว่าสำหรับ simple cases ใช้ reduce() เมื่อต้องการ complex aggregation

reduce() จะคืนค่า type อะไร?

คืนค่า type เดียวกับ initialValue เช่น initialValue เป็น 0 → คืนค่า number, initialValue เป็น {} → คืนค่า object, initialValue เป็น [] → คืนค่า array

ใช้ reduce() เมื่อไหร่?

ใช้เมื่อต้องการ aggregate อาร์เรย์เป็นค่าเดียว เช่น หาผลรวม ผลคูณ average นับจำนวน สร้าง object/map flatten nested arrays หรือคำนวณ statistics ซับซ้อน ใช้คู่กับ filter() เพื่อกรองก่อน reduce() ใช้คู่กับ map() เพื่อ transform ก่อน reduce()

Resources & Related

Additional Notes

reduce() เป็น JavaScript standard array method (ES2021+) ที่ใช้ได้ใน n8n expressions ประมวลผลแต่ละรายการในอาร์เรย์โดยใช้ accumulator function เพื่อรวม aggregate หรือสะสมค่าเป็นผลลัพธ์เดียว มีประโยชน์ในการหาผลรวม นับจำนวน สร้าง objects หรือคำนวณค่ารวม

Leave a Reply

Your email address will not be published. Required fields are marked *