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

การเขียนฟังก์ชันแฟกทอเรียลด้วย reduce และ range ใน JavaScript

เราต้องเขียนฟังก์ชันแฟกทอเรียล (factorial) ที่ใช้ฟังก์ชันช่วย range() เพื่อสร้างอาร์เรย์ตัวเลข 1 ถึง n แล้วใช้ Array.prototype.reduce() คำนวณผลคูณ

ตัวอย่างโค้ด

const range = (start, end) => {
  const acc = [];
  for (var i = start; i < end; i++) {
    acc.push(i);
  }
  return acc;
};

const factorial = n => {
  let factors = range(1, Math.abs(n) + 1);
  let res = factors.reduce((acc, val) => acc * val, 1);
  if (n < 0) {
    res *= -1;
  }
  return res;
};

console.log(factorial(5));

ผลลัพธ์

ค่าที่แสดงในคอนโซลจะเป็นดังนี้:

120