Skip to content

Instantly share code, notes, and snippets.

@mucahitnezir
Last active February 14, 2023 07:16
Show Gist options
  • Save mucahitnezir/24c46d2a057bacda10a7f471cf94ae74 to your computer and use it in GitHub Desktop.
Save mucahitnezir/24c46d2a057bacda10a7f471cf94ae74 to your computer and use it in GitHub Desktop.
Generate identity number for Republic of Turkey
const generateNumber = (min, max) => {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
const generateIdentityNumber = () => {
const identityNumber = [];
for (let index = 0; index < 9; index++) {
const minNumber = index === 0 ? 1 : 0;
identityNumber[index] = generateNumber(minNumber, 9);
}
const oddNumbers = identityNumber.filter((value, index) => index % 2 === 0);
const evenNumbers = identityNumber.filter((value, index) => index % 2 === 1);
const oddNumbersTotal = oddNumbers.reduce((totalValue, currentValue) => totalValue + currentValue, 0);
const evenNumbersTotal = evenNumbers.reduce((totalValue, currentValue) => totalValue + currentValue, 0);
identityNumber[9] = (oddNumbersTotal * 7 - evenNumbersTotal) % 10;
const totalForLastItem = oddNumbersTotal + evenNumbersTotal + identityNumber[9];
identityNumber[10] = totalForLastItem % 10;
return identityNumber.join('');
}
const identityNumber = generateIdentityNumber();
console.log(`Generated identity number is ${identityNumber}`);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment