Skip to content

Instantly share code, notes, and snippets.

@emmanueldiaz
Created December 9, 2021 05:45
Show Gist options
  • Save emmanueldiaz/b205198cfd79c347cff33b133718432a to your computer and use it in GitHub Desktop.
Save emmanueldiaz/b205198cfd79c347cff33b133718432a to your computer and use it in GitHub Desktop.
const signalToNumberMap = (inputByLength) => {
const signalMap = { };
const countIncludedChars = (input, number) => (
number.split('').reduce((count, numberChar) => {
if (input.includes(numberChar)) count++;
return count;
}, 0)
);
const number1 = inputByLength[2][0];
const number7 = inputByLength[3][0];
const number4 = inputByLength[4][0];
const number8 = inputByLength[7][0];
const number3 = inputByLength[5].find(input => (
countIncludedChars(input, number7) == number7.length
));
const number9 = inputByLength[6].find(input => (
countIncludedChars(input, number3) == number3.length
));
const number0 = inputByLength[6].find(input => (
countIncludedChars(input, number1) == number1.length && input != number9
));
const number6 = inputByLength[6].find(input => (
input != number9 && input != number0
));
const number5 = inputByLength[5].find(input => (
countIncludedChars(input, number6) == number6.length - 1
));
const number2 = inputByLength[5].find(input => (
input != number3 && input != number5
));
signalMap[number0] = 0;
signalMap[number1] = 1;
signalMap[number2] = 2;
signalMap[number3] = 3;
signalMap[number4] = 4;
signalMap[number5] = 5;
signalMap[number6] = 6;
signalMap[number7] = 7;
signalMap[number8] = 8;
signalMap[number9] = 9;
return signalMap;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment