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

การหาตัวหารร่วมที่มากที่สุดของอาร์เรย์ใน JavaScript

คำอธิบาย

เขียนฟังก์ชันที่รับอาร์เรย์ตัวเลขและคืนค่าตัวเลขที่หารทุกตัวในอาร์เรย์ลงตัว (ตัวหารร่วม)

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

const arr = [4, 6, 34, 76, 78, 44, 34, 26, 88, 76, 42];

const dividesAll = el => {
  const result = [];
  for (let num = Math.floor(el / 2); num > 1; num--) {
    if (el % num === 0) {
      result.push(num);
    }
  }
  return result;
};

const dividesArray = arr => {
  return arr.map(dividesAll).reduce((acc, val) => {
    return acc.filter(el => val.includes(el));
  });
};

console.log(dividesArray(arr));

ผลลัพธ์

[ 2 ]