首页 > 解决方案 > 在执行将字母转换为莫尔斯电码的 javaScript 函数之前,如何断言用户输入包含在数组中(正确)

问题描述

我编写了将英文字母转换为莫尔斯电码的 javaScript 函数,例如Hello,当我打印到控制台时,它会正确转换。但是如果输入包含错误的字符,例如Hel?l%o它会忽略错误的字符并打印空格。

期望:程序应该断言输入是有效的。我希望该函数invalid input在输入包含错误字符时打印到控制台而不执行。

请参阅下面的代码以获取可能的更正。谢谢。

function lettersToMorseCode(string) {
    const morseCode= ".-&-...&-.-.&-..&.&..-&--.&....&..&.---&-.-&.-..&--&-.&---&.--.&--.-&.-.&...&-&..-&...-&.--&-..-&-.--&--..&.-&-...&-.-.&-..&.&..-&--.&....&..&.---&-.-&.-..&--&-.&---&.--.&--.-&.-.&...&-&..-&...-&.--&-..-&-.--&--...".split("&");
    const letter= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXWZ".split("");
    string.split("");

    let output = [];
        /*
        if (string.split("") !== letter){
            console.log("invalid input");  
            break;          
            }            
        */  
    for (let i = 0; i < string.length; i++) {
        /*
        if (string[i] != letter){
            console.log("invalid input");            
        }
        */ 
        output.push(morseCode[letter.indexOf(string[i])]);        
    }
    let translateToMorse = output.join(" ");
    console.log(translateToMorse)
}
lettersToMorseCode("Enjoy");

我想我用if conditions错了,所以我评论了他们,因为他们没有解决挑战。

标签: javascriptarraysassertion

解决方案


推荐阅读