-
Notifications
You must be signed in to change notification settings - Fork 0
Luhn
do- edited this page Sep 22, 2024
·
3 revisions
Luhn — класс-наследник Check, вычисляющий контрольную сумму по алгоритму Луна.
const c = new Luhn (totalLength)| Имя | Описание |
|---|---|
totalLength |
Общее количество цифр в коде (valueLength + checkSumLength) |
checkSumLength |
Количество цифр в контрольной сумме: 1 |
valueLength |
Количество цифр в коде за вычетом контрольной суммы |
modulus1 |
10 |
isToDouble |
Boolean-значение, указывающее, следует ли удваивать следующее слагаемое |
Прибавляет к накопленной сумме значение digit:
- удвоенное при
isToDouble - за вычетом
9при превышении9и переключаетisToDoubleна обратное значение.
В основном сводится к вызову родительского метода, но:
- до него устанавливает
isToDoubleв значение для первой слева цифры (совпадает с чётностьюtotalLength) - после — подменяет
this.sumна значение, полученное вычитанием из 10 последней цифры накопленной суммы (то есть, собственно, контрольное число Луна).