Dùng vòng lặp chia 10 lấy dư (% 10) và chia nguyên (Math.floor(/10)) để tách từng chữ số từ phải sang trái.
Ví dụ: Tách và tính tổng chữ số
<!DOCTYPE html>
<html>
<body>
<script>
var a = 28573;
var sum = 0;
var digits = [];
while (a > 0) {
digits.unshift(a % 10); // thêm vào đầu mảng
sum += a % 10;
a = Math.floor(a / 10);
}
document.write("Các chữ số: [" + digits.join(", ") + "]<br>"); // [2, 8, 5, 7, 3]
document.write("Tổng = " + sum); // 25
</script>
</body>
</html>
Kết quả
Các chữ số: [2, 8, 5, 7, 3] Tổng = 25
Cách khác (ES6): [...String(num)].map(Number) → mảng chữ số. Ngắn gọn, dễ đọc.