All*_*let 2 javascript morse-code
对于这个项目,我试图解码给定的摩尔斯电码字符串。编码字符由一个空格分隔,单词由三个空格分隔。我很难通过单词空格。我不断收到“wordundefinedword”。
decodeMorse = function(morseCode) {
outPut = "";
for (var i = 0; i < morseCode.split(" ").length; i++) {
if (i === " ") {
outPut += " ";
} else {
outPut += MORSE_CODE[morseCode.split(" ")[i]];
}
}
return outPut;
}
Run Code Online (Sandbox Code Playgroud)
例子: ””.... 。-.--" "-- .- -."" -> "HEY MAN" 对不起,奇怪的引号。如果没有外部空间,它就不会显示空间。
也许有两个嵌套循环。外部循环将莫尔斯电码分割为三个空格,内部循环将单词分割为一个空格。这将解析出该字母,然后您可以使用摩尔斯电码字母的枚举来映射字母数字字符。
\n// message = Halp! Morse code is driving me nuts!\nvar message = ".... .- .-.. .--. -\xc2\xb7-\xc2\xb7-- -- --- .-. ... . -.-. --- -.. . .. ... -.. .-. .. ...- .. -. --. -- . -. ..- - ... -\xc2\xb7-\xc2\xb7--"; \nvar alphabet = { \n "-----":"0",\n ".----":"1",\n "..---":"2",\n "...--":"3",\n "....-":"4",\n ".....":"5",\n "-....":"6",\n "--...":"7",\n "---..":"8",\n "----.":"9",\n ".-":"a",\n "-...":"b",\n "-.-.":"c",\n "-..":"d",\n ".":"e",\n "..-.":"f",\n "--.":"g",\n "....":"h",\n "..":"i",\n ".---":"j",\n "-.-":"k",\n ".-..":"l",\n "--":"m",\n "-.":"n",\n "---":"o",\n ".--.":"p",\n "--.-":"q",\n ".-.":"r",\n "...":"s",\n "-":"t",\n "..-":"u",\n "...-":"v",\n ".--":"w",\n "-..-":"x",\n "-.--":"y",\n "--..":"z",\n "/":" ",\n "-.-.--":"!",\n ".-.-.-":".",\n "--..--":","\n};\nvar messageConverted = [];\n\nmessage.split(" ").map(function (word) {\n word.split(" ").map(function (letter) {\n messageConverted.push(alphabet[letter]);\n });\n messageConverted.push(" ");\n});\n \nconsole.log(messageConverted.join(""));Run Code Online (Sandbox Code Playgroud)\r\n或类似的东西。该枚举并不完整(大写字母、标点符号),但您明白了。
\n这里有一个方法,使用.map(),.split()和.join()。
function decodeMorse(morseCode) {
var ref = {
'.-': 'a',
'-...': 'b',
'-.-.': 'c',
'-..': 'd',
'.': 'e',
'..-.': 'f',
'--.': 'g',
'....': 'h',
'..': 'i',
'.---': 'j',
'-.-': 'k',
'.-..': 'l',
'--': 'm',
'-.': 'n',
'---': 'o',
'.--.': 'p',
'--.-': 'q',
'.-.': 'r',
'...': 's',
'-': 't',
'..-': 'u',
'...-': 'v',
'.--': 'w',
'-..-': 'x',
'-.--': 'y',
'--..': 'z',
'.----': '1',
'..---': '2',
'...--': '3',
'....-': '4',
'.....': '5',
'-....': '6',
'--...': '7',
'---..': '8',
'----.': '9',
'-----': '0',
};
return morseCode
.split(' ')
.map(
a => a
.split(' ')
.map(
b => ref[b]
).join('')
).join(' ');
}
var decoded = decodeMorse(".-- --- .-. -.. .-- --- .-. -..");
console.log(decoded);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18614 次 |
| 最近记录: |