ปัญหา
เราต้องเขียนฟังก์ชัน 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 ในตัวเลข)