Last active
June 26, 2024 16:03
-
-
Save furudean/3dd4bf99241ff54e6926fc4abe3a3215 to your computer and use it in GitHub Desktop.
Generate EAN13 check digit
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Generates a check digit from a partial EAN13. | |
| * | |
| * https://www.gs1.org/services/how-calculate-check-digit-manually | |
| * | |
| * @param {string} barcode - 12 digit EAN13 barcode without the check digit | |
| */ | |
| function checkDigitEAN13(barcode) { | |
| const sum = barcode.split('') | |
| .map((n, i) => n * (i % 2 ? 3 : 1)) // alternate between multiplying with 3 and 1 | |
| .reduce((sum, n) => sum + n, 0) // sum all values | |
| const roundedUp = Math.ceil(sum / 10) * 10; // round sum to nearest 10 | |
| const checkDigit = roundedUp - sum; // subtract round to sum = check digit | |
| return checkDigit; | |
| } |
Thanks
thanks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for your job! :)