📜  解码莫尔斯电码js - Javascript(1)

📅  最后修改于: 2023-12-03 15:27:56.355000             🧑  作者: Mango

解码莫尔斯电码

本文介绍了如何使用JavaScript解码莫尔斯电码。

背景

莫尔斯电码是一种通过短暂的电磁脉冲或光信号传递信息的电信码。它由“·-”和“--·-·”等连续点和划组成,通常用于电报通信。在我们现代化的社会中,它也用于短信和无线电通信。

解码方法

要解码莫尔斯电码,需要将每个字符的点和划转换为它所代表的字母。为了方便,它们经常表示为点表示为“.”和划线表示为“-”。“·-”代表字母“A”,“--··”代表字母“M”,以此类推。

实现

可以使用JavaScript编写函数来解码莫尔斯电码。具体实现如下:

function morseCodeDecoder(morseCode) {
  var morseCodeMap = {
    ".-": "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",
    "--..--": ",",
    ".-.-.-": ".",
    "..--..": "?",
    "-..-.": "/",
    "-.--.": "(",
    "-.--.-": ")",
    "-...-": "=",
    ".--.-.": "@",
    ".-.-.": "+",
    "---...": ":",
    "-.-.-.": ";",
    "-....-": "-",
    ".-..-.": "\"",
    "...-..-": "$",
    ".----.": "'",
    "-..-.-": "_",
    "-....-": "-",
    "..--.-": "_",
    "-...-": "&",
    ".-...": "<",
    ".--.-.": "@",
    ".-.-.-": ".",
    "--..--": "!",
    "-.--.": "(",
    "-.--.-": ")",
    "-....-": "-",
    "---...": ":",
    "-.-.-.": ";",
    "..--.-": "_",
    ".-..-.": "\"",
    "...-..-": "$",
    ".----.": "'",
    "-.-.--": "!",
    "-....-": "-",
    "...-.-": "[",
    "...-.": "[",
    ".-.-.": "+",
    "---..": "|",
    "..-.-": "^",
    ".--.-.": "@",
    "-...-": "=",
    "---": "O",
    "--.": "G",
  };

  var message = "";
  var codeWords = morseCode.split("   ");
  for (var i = 0; i < codeWords.length; i++) {
    var codeChars = codeWords[i].split(" ");
    for (var j = 0; j < codeChars.length; j++) {
      if (codeChars[j] in morseCodeMap) {
        message += morseCodeMap[codeChars[j]];
      }
    }
    message += " ";
  }
  return message.trim();
}

这个JavaScript函数将输入的莫尔斯电码解码为文本消息。它使用一个简单的映射对象来将点和划转换为字母和符号。它也支持一些特殊字符例如分号、冒号、问号和感叹号。

要使用这个函数,只需要将莫尔斯电码字符串作为参数传递给它,并在返回值中获取解码后的消息。示例代码如下:

var morseCode = "- .... .. ...   .-- .. - ....   --.- ..- .. -.-. -.-   -... .-. --- .-- -.   .--. .-. --- --. .-. .- -- -- ..- -. .-.-.-";
var message = morseCodeDecoder(morseCode);
console.log(message); // "THIS WITH QUICK BROWN PROBLEM."
结论

这篇文章介绍了如何使用JavaScript解码莫尔斯电码。希望本文对您有所帮助!