Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เมธอด Array.reduce() ใน JavaScript

Array.reduce()

ลด Array ลงเหลือ ค่าเดียว โดยประมวลผลจาก ซ้ายไปขวา (Left-to-Right) ใช้สำหรับ Sum, Product, Flatten, Grouping, และอื่นๆ

ไวยากรณ์

arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])

ตัวอย่าง: หาผลรวม

<html> <body> <p>Sum of numbers in array: </p> <script>
  const array = [1, 2, 3, 4];
  const sum = (acc, curr) => acc + curr;
  document.write(array.reduce(sum)); // 10
</script> </body> </html>

ผลลัพธ์

Sum of numbers in array: 10

ตัวอย่างอื่นๆ

Product (คูณทั้งหมด)

[1,2,3,4].reduce((a,b) => a*b, 1); // 24

Flatten Array (1 Level)

[[1,2], [3,4], [5]].reduce((a,b) => a.concat(b), []); // [1,2,3,4,5]

Count Occurrences (นับความถี่)

['a','b','a','c','b','a'].reduce((acc, v) => {
  acc[v] = (acc[v] || 0) + 1;
  return acc;
}, {}); // {a: 3, b: 2, c: 1}

สำคัญ: Initial Value

ควรส่ง initialValue เสมอ เพื่อป้องกัน Error บน Empty Array และชี้ประเภท Accumulator ชัดเจน