JSFiddle - React, Tailwind, and code Playground

by sandro_paganotti

JavaScript

function words(numbers){
    if(numbers.length === 0){
        return false;
    }
    var number = numbers[0];
    var letters = [];
    if(number === 0 || number === 1){
        letters.push("" + number);
    }else{
        for(var x=0; x < 3; x++){
            letters.push(getLetter(number,x));
        }
    }
    if(numbers.length === 1){
        return letters;
    }else{
        var tmpWords = words(numbers.slice(1));
        var mergedWords = [];
        for(var y=0; y < letters.length; y++){
            for(var k=0; k < tmpWords.length; k++){
                mergedWords.push(letters[y] + tmpWords[k]);
            }
        }
        return mergedWords;
    }
}

function getLetter(n,i){
    console.log(n,i);
    return {
        2: ['A','B','C'],
        3: ['D','E','F'],
        4: ['G','H','I'],
        5: ['J','K','L'],
        6: ['M','N','O'],
        7: ['P','R','S'],
        8: ['T','U','V'],
        9: ['W','X','Y']
    }[n][i];
}

console.log(words([3,3,4,5,7,1]));