simple pin encode decode
by borisjavier
JavaScript
//Encode
var num = 123456;
var digits = num.toString().split('');
var realDigits = digits.map(Number);
let realDig = [];
console.log(realDigits);
realDigits.forEach(function (e) {
let a;
switch(e) {
case 0: a= 10-3; break;
case 1: a= 11-3; break;
case 2: a= 12-3; break;
default: a= e-3; break
}
realDig.push(a);
});
console.log(realDig);
const int = realDig.reduce((accum, digit) => (accum * 10) + digit, 0);//convert array of digits into number
console.log(int);
//Decode
let digitsDecode = int.toString().split('');
var realDigits = digitsDecode.map(Number);
console.log(realDigits)
let realDigDec = [];
realDigits.forEach(function (e) {
let a;
switch(e) {
case 7: a= 0; break;
case 8: a= 1; break;
case 9: a= 2; break;
default: a= e + 3; break
}
realDigDec.push(a);
});
console.log(realDigDec);
const intDec = realDigDec.reduce((accum, digit) => (accum * 10) + digit, 0);
console.log(intDec)