Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // for context: https://www.reddit.com/r/badcode/comments/hm7ifj/bad_code_coding_challenge_40_to_t9_button_presses/
- function to_t9(str) {
- let output = "";
- let firstAllCapsTest = "";
- for(let i = 0; i < str.length; i++) {
- if(str.charAt(i) == str.charAt(i).toUpperCase()) {
- firstAllCapsTest += str.charAt(i);
- }
- }
- let wholeWordUppercase = firstAllCapsTest == str;
- if(wholeWordUppercase) {
- output += "## ";
- }
- str = str.split(" ");
- function getKey(char) {
- char = char.toLowerCase();
- if(char == "0") return "00";
- if(char == "1") return "11111";
- if(char == "2") return "2222";
- if(char == "3") return "3333";
- if(char == "4") return "4444";
- if(char == "5") return "5555";
- if(char == "6") return "6666";
- if(char == "7") return "77777";
- if(char == "8") return "8888";
- if(char == "9") return "99999";
- if(char == "a") return "2";
- if(char == "b") return "22";
- if(char == "c") return "222";
- if(char == "d") return "3";
- if(char == "e") return "33";
- if(char == "f") return "333";
- if(char == "g") return "4";
- if(char == "h") return "44";
- if(char == "i") return "444";
- if(char == "j") return "5";
- if(char == "k") return "55";
- if(char == "l") return "555";
- if(char == "m") return "6";
- if(char == "n") return "66";
- if(char == "o") return "666";
- if(char == "p") return "7";
- if(char == "q") return "77";
- if(char == "r") return "777";
- if(char == "s") return "7777";
- if(char == "t") return "8";
- if(char == "u") return "88";
- if(char == "v") return "888";
- if(char == "w") return "9";
- if(char == "x") return "99";
- if(char == "y") return "999";
- if(char == "z") return "9999";
- if(char == ".") return "1";
- if(char == ",") return "11";
- if(char == "?") return "111";
- if(char == "!") return "1111";
- if(char == "'") return "*";
- if(char == "-") return "**";
- if(char == "+") return "***";
- if(char == "=") return "****";
- return "i did a fucky";
- }
- for(let word of str) {
- let allCapsTest = "";
- for(let i = 0; i < word.length; i++) {
- if(word.charAt(i) == word.charAt(i).toUpperCase() && isNaN(parseInt(word.charAt(i)))) {
- allCapsTest += word.charAt(i);
- }
- }
- let allCaps = false;
- if(allCapsTest == word) {
- allCaps = true;
- }
- if(allCaps && !wholeWordUppercase) {
- if(word.length > 1) output += "## ";
- else output += "# ";
- }
- for(let i = 0; i < word.length; i++) {
- let c = word.charAt(i);
- let key = getKey(c);
- if(c == c.toUpperCase() && isNaN(parseInt(c)) && !allCaps && !wholeWordUppercase && key.charAt(0) != "1" && key.charAt(0) != "*") {
- output += "# ";
- }
- output += key;
- if(i < word.length-1 && getKey(word.charAt(i+1)).charAt(0) == key.charAt(0)) {
- output += "_";
- } else {
- output += " ";
- }
- }
- if(word != str[str.length-1]) output += "0 ";
- }
- return output;
- }
- // test
- console.log(to_t9('Hello World')); //# 44 33 555_555 666 0 # 9 666 777 555 3
- console.log(to_t9('HELLO WORLD')); //## 44 33 555_555 666 0 9 666 777 555 3
- console.log(to_t9('abba feed high')); //2_22_22_2 0 333_33_33_3 0 44_444_4_44
- console.log(to_t9('I love PHP')); //# 444 0 555 666 888 33 0 ## 7 44 7
- console.log(to_t9('there r 4 lights!')); //8 44 33 777 33 0 777 0 4444 0 555 444_4_44 8 7777 1111
Add Comment
Please, Sign In to add comment