如何在JavaScript地图中添加多个字符?

时间:2016-11-20 11:42:49

标签: javascript

我最近为Morse代码翻译器创建了一个文本,该文本已经成功,但我现在正试图将其转换为Morse解码器(Morse to text)。然而,应该翻译成字母的点和短划线(例如:在翻译中键入" .-"应该给出" a"作为结果)不是工作,相反,它给了我" e"和" t" ("。"莫尔斯是" e"," - "莫尔斯是" t")。我假设由于键侧的几个字符而发生错误

  

var map = {" key1":" obj1"," key2":" obj2"}

这是我对解码器的当前代码:



<html>
<center><h3>Write Morse code:<br/></h3>
<input id='inp' />
<button id='butt'>Decode</button>
<br><br>Result: <input size="34" type="text" id="out" name="morse" readonly/></center>
<script src='script.js'></script>
<script>var morse = {
	'.-': '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',
    '-----': '0',
    '.----': '1',
    '..---': '2',
    '...--': '3',
    '....-': '4',
    '.....': '5',
    '-....': '6',
    '--...': '7',
    '---..': '8',
    '----.': '9',
    '.--.-': 'à',
    '.--.-': 'å',
    '.-.-': 'ä',
    '----': 'ch',
    '.-..-': 'è',
    '..-..': 'é',
    '---.': 'ö',
    '..--': 'ü',
    '...--..': 'ß',
    '--.--': 'ñ',
    '.-.-.-': '.',
    '--..--': ',',
    '---...': ':',
    '-.-.-.': ';',
    '..--..': '?',
    '-....-': '-',
    '..--.-': '_',
    '-.--.': '(',
    '-.--.-': ')',
    '.----.': '\'',
    '-...-': '=',
    '.-.-.': '+',
    '-..-.': '/',
    '.--.-.': '@'
};

var inp = document.getElementById('inp');
var butt = document.getElementById('butt');
var out = document.getElementById('out');
butt.addEventListener('click', function () {
    var conv = inp.value;
    conv = conv.toLowerCase();
    conv = conv.split('');
    for (var i = 0; i < conv.length; i++) {
        if (window.CP.shouldStopExecution(1)) {
            break;
        }
        conv[i] = morse[conv[i]];
    }
    window.CP.exitedLoop(1);
    conv = conv.join(' ');
    console.log(conv);
    out.value = conv;
});
</script>
</body></html>
&#13;
&#13;
&#13;

更新: 对于具有相同问题的任何人,错误都是由&#34; conv = conv.split(&#39;&#39;)&#34;引起的。为了解决这个问题,Niet the Dark Absol和Ali7091建议我将其更改为&#34; conv = conv.split(&#39;&#39;)&#34;,在&#39;&之间增加空格#39;

0 个答案:

没有答案