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

การตรวจสอบว่าหลักตัวเลขหารด้วยหลักก่อนหน้าลงตัวใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลขและตรวจสอบแต่ละหลักว่าหารด้วยหลักทางซ้ายมือลงตัวหรือไม่ คืนค่าอาร์เรย์ของ boolean ค่า boolean แรกควรเป็น false เสมอ เพราะไม่มีหลักก่อนหน้า

ตัวอย่าง

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

const num = 73312;
const divisibleByPrevious = (n = 1) => {
  const str = n.toString();
  const arr = [false];
  for (let i = 1; i < str.length; ++i) {
    if (str[i] % str[i - 1] === 0) {
      arr.push(true);
    } else {
      arr.push(false);
    }
  }
  return arr;
};
console.log(divisibleByPrevious(num));

ผลลัพธ์

[ false, false, true, false, true ]

คำอธิบายเพิ่มเติม

73312: 7(ไม่มีก่อนหน้า→false), 3%7≠0→false, 3%3=0→true, 1%3≠0→false, 2%1=0→true โค้ดใช้ string indexing และ modulo ต้องระวังหารด้วยศูนย์ (ถ้ามี 0 ในตัวเลข)