Digit Distance คือผลรวมของความต่างสัมบูรณ์ระหว่างตัวเลขหลักที่ตรงกันของสองตัวเลข
ตัวอย่าง
345 และ 678 |3-6| + |4-7| + |5-8| = 3 + 3 + 3 = 9
ตัวอย่างโค้ด
const num1 = 345;
const num2 = 678;
const digitDistance = (a, b) => {
const aStr = String(a);
const bStr = String(b);
let diff = 0;
for (let i = 0; i < aStr.length && i < bStr.length; i++) {
diff += Math.abs(+(aStr[i] || 0) - +(bStr[i] || 0));
}
return diff;
};
console.log(digitDistance(num1, num2));
การทำงาน
- แปลงตัวเลขเป็นสตริงเพื่อเข้าถึงแต่ละหลัก
- วนลูปเปรียบเทียบหลักที่ตำแหน่งเดียวกัน
+(str[i] || 0)- แปลงเป็นตัวเลข ถ้าไม่มีหลักให้เป็น 0- สะสม
Math.abs()ของความต่าง
ผลลัพธ์
9
ประยุกต์ใช้: การเปรียบเทียบความคล้ายคลึงของตัวเลข การตรวจสอบรหัส การวิเคราะห์ข้อมูลตัวเลข