Hacker News new | ask | show | jobs
by pavel_lishin 1022 days ago
I don't want to write out all of the written-out numbers, but I wrote some code:

    letterToValue = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
        .split('')
        .reduce( (acc, letter) => { acc[letter] = letter.charCodeAt()-64; return acc; }, {}) 

    getValue = (word) => word.split('')
        .map(letter => letter.toUpperCase())
        .filter(letter => Object.keys(letterToValue).includes(letter))
        .map(letter => letterToValue[letter])
        .reduce((acc, val) => acc + val, 0);


    ['ZERO', 'ONE', 'TWO', 'THREE', 'FOUR', 'FIVE', 'SIX', 'SEVEN', 'EIGHT', 'NINE', 'TEN']
        .reduce((acc, word) => { acc[word] = getValue(word); return acc; }, {});

    ['ZERO', 'ONE', 'TWO', 'THREE', 'FOUR', 'FIVE', 'SIX', 'SEVEN', 'EIGHT', 'NINE',
    'TEN', 'ELEVEN', 'TWELVE', 'THIRTEEN', 'FOURTEEN', 'FIFTEEN', 'SIXTEEN', 'SEVENTEEN', 'EIGHTEEN', 'NINETEEN',
    'TWENTY', 'TWENTY ONE', 'TWENTY TWO', 'TWENTY THREE', 'TWENTY FOUR', 'TWENTY FIVE', 'TWENTY SIX', 'TWENTY SEVEN', 'TWENTY EIGHT', 'TWENTY NINE',
    'THIRTY', 'THIRTY ONE', 'THIRTY TWO', 'THIRTY THREE', 'THIRTY FOUR', 'THIRTY FIVE', 'THIRTY SIX', 'THIRTY SEVEN', 'THIRTY EIGHT', 'THIRTY NINE',
    ]
        .map(word => getValue(word));