abs() คืนค่าสัมบูรณ์ (absolute value) ของตัวเลข ถอดเครื่องหมายลบออกให้ได้ค่าบวกเสมอ ใช้เมื่อต้องการหาระยะห่างหรือผลต่างโดยไม่สนใจเครื่องหมาย
=number.abs()
=number.abs()
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| number | Number | Yes | ค่าตัวเลขที่ต้องการหาค่าสัมบูรณ์ (decimal หรือ integer ได้) |
General usage
{{ (-5).abs() }}={{ (-5).abs() }}
5
{{ (3.5).abs() }}={{ (3.5).abs() }}
3.5
{{ ($json.expectedPrice - $json.actualPrice).abs() }}={{ ($json.expectedPrice - $json.actualPrice).abs() }}
25
{{ $json.values.map(x => x.abs()) }}={{ $json.values.map(x => x.abs()) }}
[5, 10, 3.2, 8]
{{ $json.measurements.map(x => (x - 20).abs()) }}={{ $json.measurements.map(x => (x - 20).abs()) }}
[2, 1, 0.5, 1.5]
abs() ลบเครื่องหมายลบเท่านั้น ส่วน round() ปัดเศษเลขทศนิยม เช่น abs(-3.7) = 3.7 แต่ round(-3.7) = -4 ครับ
ใช้ได้ใน Code node, Set node (expression mode), IF node สำหรับเงื่อนไข มักใช้ในการคำนวณความต่างหรือข้อมูล quality metrics
ใน n8n ใช้ number.abs() เป็น method บนค่า ส่วน Math.abs() เป็นฟังก์ชัน static ของ JavaScript n8n support ทั้งสอง {{ (-5).abs() }} หรือ {{ Math.abs(-5) }} ก็ได้
จะ error หรือ return NaN ขึ้นอยู่กับ context ควร check ด้วย .hasField() หรือ || operator เช่น {{ ($json.value || 0).abs() }}
abs() เป็น method ที่ส่งคืนค่าสัมบูรณ์ของตัวเลข มันจะลบเครื่องหมายลบออก หากตัวเลขเป็นบวกแล้วก็คืนค่าเดิม ลบลง -5 ได้ 5, 3.5 ได้ 3.5 ครับ
ที่เจ๋งคือ abs() นำมาใช้คำนวณผลต่างระหว่างค่าสองค่า หรือ handle กับข้อมูล negative ที่ต้องการให้เป็นบวก เช่นคำนวณผลต่างของราคา ความเยื้องของ value จากค่าเป้าหมาย ใน error calculations ต้องดู absolute difference ไม่ใช่ signed
ส่วนตัวผมใช้ abs() บ่อยในเมื่อต้องเปรียบเทียบข้อมูล หรือ quality metrics ที่ต้อง absolute deviation เช่น {{ ($json.expectedPrice – $json.actualPrice).abs() }} ครับ 😎