Created
December 9, 2021 05:45
-
-
Save emmanueldiaz/b205198cfd79c347cff33b133718432a to your computer and use it in GitHub Desktop.
This file contains 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
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