Chúng ta cần viết một hàm JavaScript nhận vào một số nguyên âm và trả về tổng các chữ số của nó, trong đó chữ số đầu tiên (dấu âm) được coi là âm, các chữ số còn lại là dương.
Ví dụ
-234 --> -2 + 3 + 4 = 5
-54 --> -5 + 4 = -1Giải pháp
Chuyển số thành chuỗi, tách thành mảng ký tự, sau đó dùng reduce() để tính tổng. Chữ số tại index 0 (dấu âm) bị trừ, các chữ số còn lại bị cộng.
const num = -4345;
const sumNum = num => {
return String(num).split("").reduce((acc, val, ind) => {
if (ind === 0) {
return acc; // Bỏ qua dấu '-'
}
if (ind === 1) {
acc -= +val; // Chữ số đầu tiên sau dấu trừ: trừ vào tổng
return acc;
}
acc += +val; // Các chữ số tiếp theo: cộng vào tổng
return acc;
}, 0);
};
console.log(sumNum(num)); // 8Kết quả
8Giải thích: Với -4345: -4 + 3 + 4 + 5 = 8