Số đường đời (Life Path Number)
Số đường đời của một người được tính bằng cách cộng từng chữ số riêng lẻ trong ngày sinh của người đó, cho đến khi rút gọn thành một chữ số đơn lẻ.
Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào ngày tháng năm theo định dạng "yyyy-mm-dd" và trả về số đường đời cho ngày sinh đó. Ví dụ, nếu ngày là: 1999-06-10: năm: 1+9+9+9=28 -> 2+8=10 -> 1+0=1; tháng: 0+6=6; ngày: 1+0=1; kết quả: 1+6+1=8.
Ví dụ
Dưới đây là mã nguồn:
const date = '1999-06-10';
const findLifePath = (date = '') => {
const sum = (arr = []) => {
if(arr.length === 1){
return +arr[0]
};
let total = arr.reduce((acc, val) => acc + val);
if (total < 10){
return total
};
return sum(String(total).split("").map(Number));
};
let [year, month, day] = date.split("-")
year = sum(String(year).split("").map(Number));
month = sum(String(month).split("").map(Number));
day = sum(String(day).split("").map(Number));
return sum([year,month,day]);
};
console.log(findLifePath(date));Kết quả
Kết quả đầu ra trong console:
8