On se retrouve aujourd'hui pour la solution du précédent #KataOfTheWeek proposé par Kevin en début de semaine !
Source: 30 seconds of code
function luhnOddDigitOperation(num) {
return num !== 9 ? (num * 2) % 9 : num;
}
function luhnCheck(num) {
const arr = (num + "")
.split("")
.reverse()
.map(x => parseInt(x));
const sum = arr.reduce(
(acc, val, i) => acc + (i % 2 ? luhnOddDigitOperation(val) : val),
0
);
return sum % 10 === 0;
}
//EXAMPLES
luhnCheck("4485275742308327"); // true
luhnCheck(6011329933655299); // true
luhnCheck(123456789); // false
A bientôt pour un nouveau #KataOfTheWeek !