luhnCheck
Implementation of the Luhn Algorithm used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers, National Provider Identifier numbers etc.
Use String.prototype.split('')
, Array.prototype.reverse()
and Array.prototype.map()
in combination with parseInt()
to obtain an array of digits.
Use Array.prototype.splice(0, 1)
to obtain the last digit.
Use Array.prototype.reduce()
to implement the Luhn Algorithm.
Return true
if sum
is divisible by 10
, false
otherwise.
const luhnCheck = (num) => { let arr = (num + "") .split("") .reverse() .map((x) => parseInt(x)); let lastDigit = arr.splice(0, 1)[0]; let sum = arr.reduce( (acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9), 0 ); sum += lastDigit; return sum % 10 === 0;};Examples;luhnCheck("4485275742308327"); // trueluhnCheck(6011329933655299); // falseluhnCheck(123456789); // false
Sign for comment
You can write your questions about the subject below.
LoginYour information is only used to display your name and reply by email.