简介
在本实验中,我们将探索如何在 JavaScript 中实现 Luhn 算法。Luhn 算法通常用于验证识别号码,如信用卡号码、国际移动设备识别码(IMEI)和国家提供者识别码。通过本实验,你将学习如何分割字符串、反转数组、使用 map()、reduce() 和 shift() 方法来实现 Luhn 算法,并最终确定给定的识别号码是否有效。
This tutorial is from open-source community. Access the source code
在本实验中,我们将探索如何在 JavaScript 中实现 Luhn 算法。Luhn 算法通常用于验证识别号码,如信用卡号码、国际移动设备识别码(IMEI)和国家提供者识别码。通过本实验,你将学习如何分割字符串、反转数组、使用 map()、reduce() 和 shift() 方法来实现 Luhn 算法,并最终确定给定的识别号码是否有效。
要使用 Luhn 算法来验证识别号码,如信用卡号码、国际移动设备识别码(IMEI)、国家提供者识别码,请遵循以下步骤:
node以开始练习编码。String.prototype.split()、Array.prototype.reverse()、Array.prototype.map()和parseInt()来获取一个数字数组。Array.prototype.shift()获取最后一位数字。Array.prototype.reduce()来实现 Luhn 算法。sum能被10整除,则返回true,否则返回false。以下是代码:
const luhnCheck = (num) => {
const arr = (num + "")
.split("")
.reverse()
.map((x) => parseInt(x));
const lastDigit = arr.shift();
let sum = arr.reduce(
(acc, val, i) =>
i % 2 !== 0 ? acc + val : acc + ((val *= 2) > 9 ? val - 9 : val),
0
);
sum += lastDigit;
return sum % 10 === 0;
};
你可以使用以下示例测试 Luhn 校验函数:
luhnCheck("4485275742308327"); // true
luhnCheck(6011329933655299); // true
luhnCheck(123456789); // false
恭喜你!你已经完成了 Luhn 校验实验。你可以在 LabEx 中练习更多实验来提升你的技能。